Implemented AdPlug decoder.

CQTexperiment
Christopher Snowhill 2018-01-27 15:08:06 -08:00
parent c6c325a303
commit 50616714ad
21 changed files with 2514 additions and 0 deletions

9
.gitmodules vendored
View File

@ -7,3 +7,12 @@
[submodule "Frameworks/OpenMPT/OpenMPT"]
path = Frameworks/OpenMPT/OpenMPT
url = https://gitlab.kode54.net/kode54/OpenMPT.git
[submodule "Frameworks/AdPlug/AdPlug/adplug"]
path = Frameworks/AdPlug/AdPlug/adplug
url = https://github.com/adplug/adplug.git
[submodule "Frameworks/libbinio/libbinio/libbinio"]
path = Frameworks/libbinio/libbinio/libbinio
url = https://github.com/adplug/libbinio.git
[submodule "Frameworks/AdPlug/AdPlug/database"]
path = Frameworks/AdPlug/AdPlug/database
url = https://github.com/adplug/database.git

View File

@ -183,6 +183,7 @@
8399D4E21805A55000B503B1 /* XmlContainer.m in Sources */ = {isa = PBXBuildFile; fileRef = 8399D4E01805A55000B503B1 /* XmlContainer.m */; };
83B06704180D579E008E3612 /* MIDI.bundle in CopyFiles */ = {isa = PBXBuildFile; fileRef = 83B066A1180D5669008E3612 /* MIDI.bundle */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
83BCB8DE17FC971300760340 /* FFMPEG.bundle in CopyFiles */ = {isa = PBXBuildFile; fileRef = B09E94350D747F7B0064F138 /* FFMPEG.bundle */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
83D3C6AD201D39E1005564CB /* AdPlug.bundle in CopyFiles */ = {isa = PBXBuildFile; fileRef = 83D3C601201C674F005564CB /* AdPlug.bundle */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
83E5E54C18087CA5001F3284 /* miniModeOffTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 83E5E54A18087CA5001F3284 /* miniModeOffTemplate.pdf */; };
83E5E54D18087CA5001F3284 /* miniModeOnTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 83E5E54B18087CA5001F3284 /* miniModeOnTemplate.pdf */; };
83E5FE771FFF0C9D00659F0F /* OpenMPT.bundle in CopyFiles */ = {isa = PBXBuildFile; fileRef = 83E5EFB11FFEF78300659F0F /* OpenMPT.bundle */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
@ -542,6 +543,27 @@
remoteGlobalIDString = 8D5B49AC048680CD000E48DA;
remoteInfo = "FFMPEG Plugin";
};
83D3C600201C674F005564CB /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 83D3C5FC201C674D005564CB /* AdPlug.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 83D3C5F3201C674D005564CB;
remoteInfo = AdPlug;
};
83D3C6A9201D39BC005564CB /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 83D3C5FC201C674D005564CB /* AdPlug.xcodeproj */;
proxyType = 1;
remoteGlobalIDString = 83D3C5F2201C674D005564CB;
remoteInfo = AdPlug;
};
83D3C6AB201D39C3005564CB /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 836F6B2518BDB80D0095E648 /* vgmstream.xcodeproj */;
proxyType = 1;
remoteGlobalIDString = 836F6B0F18BDB80D0095E648;
remoteInfo = vgmstream;
};
83E5EFB01FFEF78300659F0F /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 83E5EFAC1FFEF78100659F0F /* OpenMPT.xcodeproj */;
@ -679,6 +701,7 @@
dstPath = "";
dstSubfolderSpec = 13;
files = (
83D3C6AD201D39E1005564CB /* AdPlug.bundle in CopyFiles */,
83E5FE771FFF0C9D00659F0F /* OpenMPT.bundle in CopyFiles */,
83EEAB241C965C56002761C5 /* Syntrax.bundle in CopyFiles */,
83F9D8071A884C54007ABEC2 /* SilenceDecoder.bundle in CopyFiles */,
@ -982,6 +1005,7 @@
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>"; };
83B0669C180D5668008E3612 /* MIDI.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = MIDI.xcodeproj; path = Plugins/MIDI/MIDI.xcodeproj; sourceTree = "<group>"; };
83D3C5FC201C674D005564CB /* AdPlug.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = AdPlug.xcodeproj; path = Plugins/AdPlug/AdPlug.xcodeproj; sourceTree = "<group>"; };
83E5E54A18087CA5001F3284 /* miniModeOffTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = miniModeOffTemplate.pdf; path = Images/miniModeOffTemplate.pdf; sourceTree = "<group>"; };
83E5E54B18087CA5001F3284 /* miniModeOnTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = miniModeOnTemplate.pdf; path = Images/miniModeOnTemplate.pdf; sourceTree = "<group>"; };
83E5EFAC1FFEF78100659F0F /* OpenMPT.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = OpenMPT.xcodeproj; path = Plugins/OpenMPT/OpenMPT.xcodeproj; sourceTree = "<group>"; };
@ -1262,6 +1286,7 @@
17B619FF0B909ED400BC003F /* PlugIns */ = {
isa = PBXGroup;
children = (
83D3C5FC201C674D005564CB /* AdPlug.xcodeproj */,
83E5EFAC1FFEF78100659F0F /* OpenMPT.xcodeproj */,
83EEAAF51C9651D8002761C5 /* Syntrax.xcodeproj */,
8360EF0017F92B23005208A4 /* HighlyComplete.xcodeproj */,
@ -1677,6 +1702,14 @@
name = Products;
sourceTree = "<group>";
};
83D3C5FD201C674D005564CB /* Products */ = {
isa = PBXGroup;
children = (
83D3C601201C674F005564CB /* AdPlug.bundle */,
);
name = Products;
sourceTree = "<group>";
};
83E5EFAD1FFEF78100659F0F /* Products */ = {
isa = PBXGroup;
children = (
@ -1848,6 +1881,8 @@
buildRules = (
);
dependencies = (
83D3C6AC201D39C3005564CB /* PBXTargetDependency */,
83D3C6AA201D39BC005564CB /* PBXTargetDependency */,
83E5FE791FFF0CAC00659F0F /* PBXTargetDependency */,
83EEAB261C965C61002761C5 /* PBXTargetDependency */,
83F9D8061A884C33007ABEC2 /* PBXTargetDependency */,
@ -1915,6 +1950,10 @@
mainGroup = 29B97314FDCFA39411CA2CEA /* Cog */;
projectDirPath = "";
projectReferences = (
{
ProductGroup = 83D3C5FD201C674D005564CB /* Products */;
ProjectRef = 83D3C5FC201C674D005564CB /* AdPlug.xcodeproj */;
},
{
ProductGroup = 566D32170D538550004466A5 /* Products */;
ProjectRef = 566D32160D538550004466A5 /* APL.xcodeproj */;
@ -2215,6 +2254,13 @@
remoteRef = 83B066A0180D5669008E3612 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
83D3C601201C674F005564CB /* AdPlug.bundle */ = {
isa = PBXReferenceProxy;
fileType = wrapper.cfbundle;
path = AdPlug.bundle;
remoteRef = 83D3C600201C674F005564CB /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
83E5EFB11FFEF78300659F0F /* OpenMPT.bundle */ = {
isa = PBXReferenceProxy;
fileType = wrapper.cfbundle;
@ -2604,6 +2650,16 @@
name = "FFMPEG Plugin";
targetProxy = 83BCB8DC17FC96FC00760340 /* PBXContainerItemProxy */;
};
83D3C6AA201D39BC005564CB /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = AdPlug;
targetProxy = 83D3C6A9201D39BC005564CB /* PBXContainerItemProxy */;
};
83D3C6AC201D39C3005564CB /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = vgmstream;
targetProxy = 83D3C6AB201D39C3005564CB /* PBXContainerItemProxy */;
};
83E5FE791FFF0CAC00659F0F /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = OpenMPT;

View File

@ -0,0 +1,882 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 48;
objects = {
/* Begin PBXBuildFile section */
83D3C577201C66E3005564CB /* rad.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C504201C66C1005564CB /* rad.h */; };
83D3C578201C66E3005564CB /* adplug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C505201C66C1005564CB /* adplug.cpp */; };
83D3C579201C66E3005564CB /* mtk.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C506201C66C2005564CB /* mtk.h */; };
83D3C57A201C66E3005564CB /* psi.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C507201C66C2005564CB /* psi.h */; };
83D3C57C201C66E3005564CB /* ksm.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C509201C66C2005564CB /* ksm.h */; };
83D3C57D201C66E3005564CB /* nukedopl.c in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C50A201C66C3005564CB /* nukedopl.c */; };
83D3C57E201C66E3005564CB /* flash.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C50B201C66C3005564CB /* flash.h */; };
83D3C57F201C66E3005564CB /* hybrid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C50C201C66C3005564CB /* hybrid.cpp */; };
83D3C580201C66E3005564CB /* bam.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C50D201C66C3005564CB /* bam.cpp */; };
83D3C581201C66E3005564CB /* amd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C50E201C66C4005564CB /* amd.cpp */; };
83D3C582201C66E3005564CB /* adplug.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C50F201C66C4005564CB /* adplug.h */; settings = {ATTRIBUTES = (Public, ); }; };
83D3C583201C66E3005564CB /* mus.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C510201C66C4005564CB /* mus.cpp */; };
83D3C584201C66E3005564CB /* mad.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C511201C66C4005564CB /* mad.h */; };
83D3C585201C66E3005564CB /* hsp.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C512201C66C5005564CB /* hsp.h */; };
83D3C586201C66E3005564CB /* cmf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C513201C66C5005564CB /* cmf.cpp */; };
83D3C587201C66E3005564CB /* u6m.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C514201C66C5005564CB /* u6m.cpp */; };
83D3C588201C66E3005564CB /* dmo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C515201C66C6005564CB /* dmo.cpp */; };
83D3C589201C66E3005564CB /* adl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C516201C66C6005564CB /* adl.cpp */; };
83D3C58A201C66E3005564CB /* player.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C517201C66C6005564CB /* player.cpp */; };
83D3C58B201C66E3005564CB /* cmf.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C518201C66C6005564CB /* cmf.h */; };
83D3C58C201C66E3005564CB /* d00.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C519201C66C7005564CB /* d00.h */; };
83D3C58D201C66E3005564CB /* mad.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C51A201C66C7005564CB /* mad.cpp */; };
83D3C58E201C66E3005564CB /* hsc.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C51B201C66C7005564CB /* hsc.h */; };
83D3C58F201C66E3005564CB /* msc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C51C201C66C7005564CB /* msc.cpp */; };
83D3C590201C66E3005564CB /* rad.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C51D201C66C8005564CB /* rad.cpp */; };
83D3C591201C66E3005564CB /* mdi.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C51E201C66C8005564CB /* mdi.h */; };
83D3C592201C66E3005564CB /* mididata.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C51F201C66C8005564CB /* mididata.h */; };
83D3C593201C66E3005564CB /* s3m.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C520201C66C8005564CB /* s3m.h */; };
83D3C594201C66E3005564CB /* dtm.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C521201C66C9005564CB /* dtm.h */; };
83D3C595201C66E3005564CB /* sng.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C522201C66C9005564CB /* sng.cpp */; };
83D3C596201C66E3005564CB /* rat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C523201C66C9005564CB /* rat.cpp */; };
83D3C597201C66E3005564CB /* xsm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C524201C66C9005564CB /* xsm.cpp */; };
83D3C599201C66E3005564CB /* herad.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C526201C66CA005564CB /* herad.h */; };
83D3C59A201C66E3005564CB /* bam.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C527201C66CA005564CB /* bam.h */; };
83D3C59B201C66E3005564CB /* bmf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C528201C66CA005564CB /* bmf.cpp */; };
83D3C59C201C66E3005564CB /* hsp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C529201C66CB005564CB /* hsp.cpp */; };
83D3C59D201C66E3005564CB /* dro.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C52A201C66CB005564CB /* dro.h */; };
83D3C59E201C66E3005564CB /* mkj.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C52B201C66CB005564CB /* mkj.cpp */; };
83D3C59F201C66E3005564CB /* hyp.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C52C201C66CB005564CB /* hyp.h */; };
83D3C5A0201C66E3005564CB /* s3m.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C52D201C66CC005564CB /* s3m.cpp */; };
83D3C5A1201C66E3005564CB /* mkj.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C52E201C66CC005564CB /* mkj.h */; };
83D3C5A2201C66E3005564CB /* mus.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C52F201C66CC005564CB /* mus.h */; };
83D3C5A3201C66E3005564CB /* fmc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C530201C66CD005564CB /* fmc.cpp */; };
83D3C5A4201C66E3005564CB /* vgm.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C531201C66CD005564CB /* vgm.h */; };
83D3C5A5201C66E3005564CB /* nemuopl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C532201C66CD005564CB /* nemuopl.cpp */; };
83D3C5A6201C66E3005564CB /* protrack.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C533201C66CD005564CB /* protrack.h */; };
83D3C5A7201C66E3005564CB /* sng.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C534201C66CE005564CB /* sng.h */; };
83D3C5A8201C66E3005564CB /* mtk.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C535201C66CE005564CB /* mtk.cpp */; };
83D3C5A9201C66E3005564CB /* lds.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C536201C66CE005564CB /* lds.cpp */; };
83D3C5AA201C66E3005564CB /* adtrack.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C537201C66CE005564CB /* adtrack.cpp */; };
83D3C5AB201C66E3005564CB /* msc.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C538201C66CF005564CB /* msc.h */; };
83D3C5AC201C66E3005564CB /* hybrid.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C539201C66CF005564CB /* hybrid.h */; };
83D3C5AD201C66E3005564CB /* psi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C53A201C66CF005564CB /* psi.cpp */; };
83D3C5AE201C66E3005564CB /* adtrack.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C53B201C66D0005564CB /* adtrack.h */; };
83D3C5AF201C66E3005564CB /* dtm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C53C201C66D0005564CB /* dtm.cpp */; };
83D3C5B0201C66E3005564CB /* imf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C53D201C66D0005564CB /* imf.cpp */; };
83D3C5B1201C66E3005564CB /* players.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C53E201C66D1005564CB /* players.h */; settings = {ATTRIBUTES = (Public, ); }; };
83D3C5B2201C66E3005564CB /* u6m.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C53F201C66D1005564CB /* u6m.h */; };
83D3C5B3201C66E3005564CB /* sa2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C540201C66D1005564CB /* sa2.cpp */; };
83D3C5B4201C66E3005564CB /* cmfmcsop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C541201C66D2005564CB /* cmfmcsop.cpp */; };
83D3C5B6201C66E3005564CB /* hsc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C543201C66D2005564CB /* hsc.cpp */; };
83D3C5B7201C66E3005564CB /* nemuopl.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C544201C66D3005564CB /* nemuopl.h */; settings = {ATTRIBUTES = (Public, ); }; };
83D3C5B8201C66E3005564CB /* dmo.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C545201C66D3005564CB /* dmo.h */; };
83D3C5B9201C66E3005564CB /* imf.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C546201C66D3005564CB /* imf.h */; };
83D3C5BB201C66E3005564CB /* players.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C548201C66D4005564CB /* players.cpp */; };
83D3C5BC201C66E3005564CB /* protrack.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C549201C66D4005564CB /* protrack.cpp */; };
83D3C5BD201C66E3005564CB /* amd.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C54A201C66D4005564CB /* amd.h */; };
83D3C5BE201C66E3005564CB /* dro.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C54B201C66D5005564CB /* dro.cpp */; };
83D3C5BF201C66E3005564CB /* adlib.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C54C201C66D5005564CB /* adlib.cpp */; };
83D3C5C0201C66E3005564CB /* rix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C54D201C66D5005564CB /* rix.cpp */; };
83D3C5C1201C66E3005564CB /* jbm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C54E201C66D6005564CB /* jbm.cpp */; };
83D3C5C2201C66E3005564CB /* dfm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C54F201C66D6005564CB /* dfm.cpp */; };
83D3C5C3201C66E3005564CB /* dro2.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C550201C66D6005564CB /* dro2.h */; };
83D3C5C4201C66E3005564CB /* cff.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C551201C66D6005564CB /* cff.cpp */; };
83D3C5C5201C66E3005564CB /* fmc.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C552201C66D7005564CB /* fmc.h */; };
83D3C5C6201C66E3005564CB /* mdi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C553201C66D7005564CB /* mdi.cpp */; };
83D3C5C7201C66E3005564CB /* sa2.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C554201C66D7005564CB /* sa2.h */; };
83D3C5C8201C66E3005564CB /* rol.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C555201C66D8005564CB /* rol.h */; };
83D3C5C9201C66E3005564CB /* dfm.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C556201C66D8005564CB /* dfm.h */; };
83D3C5CA201C66E3005564CB /* got.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C557201C66D8005564CB /* got.h */; };
83D3C5CB201C66E3005564CB /* adlib.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C558201C66DA005564CB /* adlib.h */; };
83D3C5CC201C66E3005564CB /* cmfmcsop.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C559201C66DA005564CB /* cmfmcsop.h */; };
83D3C5CD201C66E3005564CB /* mid.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C55A201C66DA005564CB /* mid.h */; };
83D3C5CE201C66E3005564CB /* mid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C55B201C66DA005564CB /* mid.cpp */; };
83D3C5CF201C66E3005564CB /* flash.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C55C201C66DB005564CB /* flash.cpp */; };
83D3C5D0201C66E3005564CB /* lds.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C55D201C66DB005564CB /* lds.h */; };
83D3C5D1201C66E3005564CB /* xsm.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C55E201C66DB005564CB /* xsm.h */; };
83D3C5D2201C66E3005564CB /* a2m.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C55F201C66DC005564CB /* a2m.cpp */; };
83D3C5D3201C66E3005564CB /* jbm.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C560201C66DC005564CB /* jbm.h */; };
83D3C5D4201C66E3005564CB /* d00.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C561201C66DC005564CB /* d00.cpp */; };
83D3C5D5201C66E3005564CB /* dro2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C562201C66DD005564CB /* dro2.cpp */; };
83D3C5D6201C66E3005564CB /* sop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C563201C66DD005564CB /* sop.cpp */; };
83D3C5D7201C66E3005564CB /* xad.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C564201C66DD005564CB /* xad.h */; };
83D3C5D8201C66E3005564CB /* xad.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C565201C66DE005564CB /* xad.cpp */; };
83D3C5D9201C66E3005564CB /* raw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C566201C66DE005564CB /* raw.cpp */; };
83D3C5DA201C66E3005564CB /* hyp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C567201C66DE005564CB /* hyp.cpp */; };
83D3C5DB201C66E3005564CB /* rol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C568201C66DE005564CB /* rol.cpp */; };
83D3C5DC201C66E3005564CB /* a2m.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C569201C66DF005564CB /* a2m.h */; };
83D3C5DD201C66E3005564CB /* herad.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C56A201C66DF005564CB /* herad.cpp */; };
83D3C5DE201C66E3005564CB /* nukedopl.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C56B201C66DF005564CB /* nukedopl.h */; };
83D3C5DF201C66E3005564CB /* raw.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C56C201C66E0005564CB /* raw.h */; };
83D3C5E0201C66E3005564CB /* ksm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C56D201C66E0005564CB /* ksm.cpp */; };
83D3C5E1201C66E3005564CB /* got.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C56E201C66E0005564CB /* got.cpp */; };
83D3C5E3201C66E3005564CB /* vgm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C570201C66E1005564CB /* vgm.cpp */; };
83D3C5E4201C66E3005564CB /* rat.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C571201C66E1005564CB /* rat.h */; };
83D3C5E5201C66E3005564CB /* adl.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C572201C66E2005564CB /* adl.h */; };
83D3C5E6201C66E3005564CB /* sop.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C573201C66E2005564CB /* sop.h */; };
83D3C5E7201C66E3005564CB /* rix.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C574201C66E2005564CB /* rix.h */; };
83D3C5E8201C66E3005564CB /* bmf.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C575201C66E3005564CB /* bmf.h */; };
83D3C5E9201C66E3005564CB /* cff.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C576201C66E3005564CB /* cff.h */; };
83D3C639201C6A81005564CB /* version.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C638201C6A81005564CB /* version.h */; };
83D3C63B201C6AE2005564CB /* player.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C63A201C6AE2005564CB /* player.h */; settings = {ATTRIBUTES = (Public, ); }; };
83D3C648201C6BB9005564CB /* database.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C644201C6BB8005564CB /* database.cpp */; };
83D3C649201C6BB9005564CB /* fprovide.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C645201C6BB8005564CB /* fprovide.cpp */; };
83D3C64A201C6BB9005564CB /* fprovide.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C646201C6BB8005564CB /* fprovide.h */; settings = {ATTRIBUTES = (Public, ); }; };
83D3C64B201C6BB9005564CB /* database.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C647201C6BB8005564CB /* database.h */; settings = {ATTRIBUTES = (Public, ); }; };
83D3C64E201C6D38005564CB /* debug.c in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C64C201C6D37005564CB /* debug.c */; };
83D3C64F201C6D38005564CB /* debug.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C64D201C6D38005564CB /* debug.h */; };
83D3C662201C6EC4005564CB /* opl.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C661201C6EC3005564CB /* opl.h */; settings = {ATTRIBUTES = (Public, ); }; };
83D3C670201D2C2C005564CB /* silentopl.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C66F201D2C2C005564CB /* silentopl.h */; settings = {ATTRIBUTES = (Public, ); }; };
83D3C6A2201D38DF005564CB /* libbinio.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 83D3C691201D3864005564CB /* libbinio.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
83D3C6A5201D3939005564CB /* libbinio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 83D3C691201D3864005564CB /* libbinio.framework */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
83D3C690201D3864005564CB /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 83D3C68C201D3864005564CB /* libbinio.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 83D3C67B201D37D8005564CB;
remoteInfo = libbinio;
};
83D3C6A3201D38FE005564CB /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 83D3C68C201D3864005564CB /* libbinio.xcodeproj */;
proxyType = 1;
remoteGlobalIDString = 83D3C67A201D37D8005564CB;
remoteInfo = libbinio;
};
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */
83D3C65F201C6E56005564CB /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 10;
files = (
83D3C6A2201D38DF005564CB /* libbinio.framework in CopyFiles */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
83D3C4D4201C654F005564CB /* AdPlug.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = AdPlug.framework; sourceTree = BUILT_PRODUCTS_DIR; };
83D3C4D8201C6550005564CB /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
83D3C504201C66C1005564CB /* rad.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = rad.h; path = adplug/src/rad.h; sourceTree = "<group>"; };
83D3C505201C66C1005564CB /* adplug.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = adplug.cpp; path = adplug/src/adplug.cpp; sourceTree = "<group>"; };
83D3C506201C66C2005564CB /* mtk.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mtk.h; path = adplug/src/mtk.h; sourceTree = "<group>"; };
83D3C507201C66C2005564CB /* psi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = psi.h; path = adplug/src/psi.h; sourceTree = "<group>"; };
83D3C509201C66C2005564CB /* ksm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ksm.h; path = adplug/src/ksm.h; sourceTree = "<group>"; };
83D3C50A201C66C3005564CB /* nukedopl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = nukedopl.c; path = adplug/src/nukedopl.c; sourceTree = "<group>"; };
83D3C50B201C66C3005564CB /* flash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = flash.h; path = adplug/src/flash.h; sourceTree = "<group>"; };
83D3C50C201C66C3005564CB /* hybrid.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = hybrid.cpp; path = adplug/src/hybrid.cpp; sourceTree = "<group>"; };
83D3C50D201C66C3005564CB /* bam.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = bam.cpp; path = adplug/src/bam.cpp; sourceTree = "<group>"; };
83D3C50E201C66C4005564CB /* amd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = amd.cpp; path = adplug/src/amd.cpp; sourceTree = "<group>"; };
83D3C50F201C66C4005564CB /* adplug.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = adplug.h; path = adplug/src/adplug.h; sourceTree = "<group>"; };
83D3C510201C66C4005564CB /* mus.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mus.cpp; path = adplug/src/mus.cpp; sourceTree = "<group>"; };
83D3C511201C66C4005564CB /* mad.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mad.h; path = adplug/src/mad.h; sourceTree = "<group>"; };
83D3C512201C66C5005564CB /* hsp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = hsp.h; path = adplug/src/hsp.h; sourceTree = "<group>"; };
83D3C513201C66C5005564CB /* cmf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = cmf.cpp; path = adplug/src/cmf.cpp; sourceTree = "<group>"; };
83D3C514201C66C5005564CB /* u6m.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = u6m.cpp; path = adplug/src/u6m.cpp; sourceTree = "<group>"; };
83D3C515201C66C6005564CB /* dmo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = dmo.cpp; path = adplug/src/dmo.cpp; sourceTree = "<group>"; };
83D3C516201C66C6005564CB /* adl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = adl.cpp; path = adplug/src/adl.cpp; sourceTree = "<group>"; };
83D3C517201C66C6005564CB /* player.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = player.cpp; path = adplug/src/player.cpp; sourceTree = "<group>"; };
83D3C518201C66C6005564CB /* cmf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cmf.h; path = adplug/src/cmf.h; sourceTree = "<group>"; };
83D3C519201C66C7005564CB /* d00.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = d00.h; path = adplug/src/d00.h; sourceTree = "<group>"; };
83D3C51A201C66C7005564CB /* mad.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mad.cpp; path = adplug/src/mad.cpp; sourceTree = "<group>"; };
83D3C51B201C66C7005564CB /* hsc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = hsc.h; path = adplug/src/hsc.h; sourceTree = "<group>"; };
83D3C51C201C66C7005564CB /* msc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = msc.cpp; path = adplug/src/msc.cpp; sourceTree = "<group>"; };
83D3C51D201C66C8005564CB /* rad.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = rad.cpp; path = adplug/src/rad.cpp; sourceTree = "<group>"; };
83D3C51E201C66C8005564CB /* mdi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mdi.h; path = adplug/src/mdi.h; sourceTree = "<group>"; };
83D3C51F201C66C8005564CB /* mididata.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mididata.h; path = adplug/src/mididata.h; sourceTree = "<group>"; };
83D3C520201C66C8005564CB /* s3m.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = s3m.h; path = adplug/src/s3m.h; sourceTree = "<group>"; };
83D3C521201C66C9005564CB /* dtm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dtm.h; path = adplug/src/dtm.h; sourceTree = "<group>"; };
83D3C522201C66C9005564CB /* sng.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = sng.cpp; path = adplug/src/sng.cpp; sourceTree = "<group>"; };
83D3C523201C66C9005564CB /* rat.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = rat.cpp; path = adplug/src/rat.cpp; sourceTree = "<group>"; };
83D3C524201C66C9005564CB /* xsm.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = xsm.cpp; path = adplug/src/xsm.cpp; sourceTree = "<group>"; };
83D3C526201C66CA005564CB /* herad.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = herad.h; path = adplug/src/herad.h; sourceTree = "<group>"; };
83D3C527201C66CA005564CB /* bam.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = bam.h; path = adplug/src/bam.h; sourceTree = "<group>"; };
83D3C528201C66CA005564CB /* bmf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = bmf.cpp; path = adplug/src/bmf.cpp; sourceTree = "<group>"; };
83D3C529201C66CB005564CB /* hsp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = hsp.cpp; path = adplug/src/hsp.cpp; sourceTree = "<group>"; };
83D3C52A201C66CB005564CB /* dro.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dro.h; path = adplug/src/dro.h; sourceTree = "<group>"; };
83D3C52B201C66CB005564CB /* mkj.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mkj.cpp; path = adplug/src/mkj.cpp; sourceTree = "<group>"; };
83D3C52C201C66CB005564CB /* hyp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = hyp.h; path = adplug/src/hyp.h; sourceTree = "<group>"; };
83D3C52D201C66CC005564CB /* s3m.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = s3m.cpp; path = adplug/src/s3m.cpp; sourceTree = "<group>"; };
83D3C52E201C66CC005564CB /* mkj.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mkj.h; path = adplug/src/mkj.h; sourceTree = "<group>"; };
83D3C52F201C66CC005564CB /* mus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mus.h; path = adplug/src/mus.h; sourceTree = "<group>"; };
83D3C530201C66CD005564CB /* fmc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = fmc.cpp; path = adplug/src/fmc.cpp; sourceTree = "<group>"; };
83D3C531201C66CD005564CB /* vgm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vgm.h; path = adplug/src/vgm.h; sourceTree = "<group>"; };
83D3C532201C66CD005564CB /* nemuopl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = nemuopl.cpp; path = adplug/src/nemuopl.cpp; sourceTree = "<group>"; };
83D3C533201C66CD005564CB /* protrack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = protrack.h; path = adplug/src/protrack.h; sourceTree = "<group>"; };
83D3C534201C66CE005564CB /* sng.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sng.h; path = adplug/src/sng.h; sourceTree = "<group>"; };
83D3C535201C66CE005564CB /* mtk.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mtk.cpp; path = adplug/src/mtk.cpp; sourceTree = "<group>"; };
83D3C536201C66CE005564CB /* lds.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = lds.cpp; path = adplug/src/lds.cpp; sourceTree = "<group>"; };
83D3C537201C66CE005564CB /* adtrack.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = adtrack.cpp; path = adplug/src/adtrack.cpp; sourceTree = "<group>"; };
83D3C538201C66CF005564CB /* msc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = msc.h; path = adplug/src/msc.h; sourceTree = "<group>"; };
83D3C539201C66CF005564CB /* hybrid.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = hybrid.h; path = adplug/src/hybrid.h; sourceTree = "<group>"; };
83D3C53A201C66CF005564CB /* psi.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = psi.cpp; path = adplug/src/psi.cpp; sourceTree = "<group>"; };
83D3C53B201C66D0005564CB /* adtrack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = adtrack.h; path = adplug/src/adtrack.h; sourceTree = "<group>"; };
83D3C53C201C66D0005564CB /* dtm.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = dtm.cpp; path = adplug/src/dtm.cpp; sourceTree = "<group>"; };
83D3C53D201C66D0005564CB /* imf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = imf.cpp; path = adplug/src/imf.cpp; sourceTree = "<group>"; };
83D3C53E201C66D1005564CB /* players.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = players.h; path = adplug/src/players.h; sourceTree = "<group>"; };
83D3C53F201C66D1005564CB /* u6m.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = u6m.h; path = adplug/src/u6m.h; sourceTree = "<group>"; };
83D3C540201C66D1005564CB /* sa2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = sa2.cpp; path = adplug/src/sa2.cpp; sourceTree = "<group>"; };
83D3C541201C66D2005564CB /* cmfmcsop.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = cmfmcsop.cpp; path = adplug/src/cmfmcsop.cpp; sourceTree = "<group>"; };
83D3C543201C66D2005564CB /* hsc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = hsc.cpp; path = adplug/src/hsc.cpp; sourceTree = "<group>"; };
83D3C544201C66D3005564CB /* nemuopl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = nemuopl.h; path = adplug/src/nemuopl.h; sourceTree = "<group>"; };
83D3C545201C66D3005564CB /* dmo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dmo.h; path = adplug/src/dmo.h; sourceTree = "<group>"; };
83D3C546201C66D3005564CB /* imf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = imf.h; path = adplug/src/imf.h; sourceTree = "<group>"; };
83D3C548201C66D4005564CB /* players.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = players.cpp; path = adplug/src/players.cpp; sourceTree = "<group>"; };
83D3C549201C66D4005564CB /* protrack.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = protrack.cpp; path = adplug/src/protrack.cpp; sourceTree = "<group>"; };
83D3C54A201C66D4005564CB /* amd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = amd.h; path = adplug/src/amd.h; sourceTree = "<group>"; };
83D3C54B201C66D5005564CB /* dro.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = dro.cpp; path = adplug/src/dro.cpp; sourceTree = "<group>"; };
83D3C54C201C66D5005564CB /* adlib.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = adlib.cpp; path = adplug/src/adlib.cpp; sourceTree = "<group>"; };
83D3C54D201C66D5005564CB /* rix.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = rix.cpp; path = adplug/src/rix.cpp; sourceTree = "<group>"; };
83D3C54E201C66D6005564CB /* jbm.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = jbm.cpp; path = adplug/src/jbm.cpp; sourceTree = "<group>"; };
83D3C54F201C66D6005564CB /* dfm.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = dfm.cpp; path = adplug/src/dfm.cpp; sourceTree = "<group>"; };
83D3C550201C66D6005564CB /* dro2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dro2.h; path = adplug/src/dro2.h; sourceTree = "<group>"; };
83D3C551201C66D6005564CB /* cff.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = cff.cpp; path = adplug/src/cff.cpp; sourceTree = "<group>"; };
83D3C552201C66D7005564CB /* fmc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fmc.h; path = adplug/src/fmc.h; sourceTree = "<group>"; };
83D3C553201C66D7005564CB /* mdi.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mdi.cpp; path = adplug/src/mdi.cpp; sourceTree = "<group>"; };
83D3C554201C66D7005564CB /* sa2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sa2.h; path = adplug/src/sa2.h; sourceTree = "<group>"; };
83D3C555201C66D8005564CB /* rol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = rol.h; path = adplug/src/rol.h; sourceTree = "<group>"; };
83D3C556201C66D8005564CB /* dfm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dfm.h; path = adplug/src/dfm.h; sourceTree = "<group>"; };
83D3C557201C66D8005564CB /* got.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = got.h; path = adplug/src/got.h; sourceTree = "<group>"; };
83D3C558201C66DA005564CB /* adlib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = adlib.h; path = adplug/src/adlib.h; sourceTree = "<group>"; };
83D3C559201C66DA005564CB /* cmfmcsop.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cmfmcsop.h; path = adplug/src/cmfmcsop.h; sourceTree = "<group>"; };
83D3C55A201C66DA005564CB /* mid.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mid.h; path = adplug/src/mid.h; sourceTree = "<group>"; };
83D3C55B201C66DA005564CB /* mid.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mid.cpp; path = adplug/src/mid.cpp; sourceTree = "<group>"; };
83D3C55C201C66DB005564CB /* flash.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = flash.cpp; path = adplug/src/flash.cpp; sourceTree = "<group>"; };
83D3C55D201C66DB005564CB /* lds.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lds.h; path = adplug/src/lds.h; sourceTree = "<group>"; };
83D3C55E201C66DB005564CB /* xsm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = xsm.h; path = adplug/src/xsm.h; sourceTree = "<group>"; };
83D3C55F201C66DC005564CB /* a2m.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = a2m.cpp; path = adplug/src/a2m.cpp; sourceTree = "<group>"; };
83D3C560201C66DC005564CB /* jbm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = jbm.h; path = adplug/src/jbm.h; sourceTree = "<group>"; };
83D3C561201C66DC005564CB /* d00.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = d00.cpp; path = adplug/src/d00.cpp; sourceTree = "<group>"; };
83D3C562201C66DD005564CB /* dro2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = dro2.cpp; path = adplug/src/dro2.cpp; sourceTree = "<group>"; };
83D3C563201C66DD005564CB /* sop.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = sop.cpp; path = adplug/src/sop.cpp; sourceTree = "<group>"; };
83D3C564201C66DD005564CB /* xad.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = xad.h; path = adplug/src/xad.h; sourceTree = "<group>"; };
83D3C565201C66DE005564CB /* xad.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = xad.cpp; path = adplug/src/xad.cpp; sourceTree = "<group>"; };
83D3C566201C66DE005564CB /* raw.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = raw.cpp; path = adplug/src/raw.cpp; sourceTree = "<group>"; };
83D3C567201C66DE005564CB /* hyp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = hyp.cpp; path = adplug/src/hyp.cpp; sourceTree = "<group>"; };
83D3C568201C66DE005564CB /* rol.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = rol.cpp; path = adplug/src/rol.cpp; sourceTree = "<group>"; };
83D3C569201C66DF005564CB /* a2m.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = a2m.h; path = adplug/src/a2m.h; sourceTree = "<group>"; };
83D3C56A201C66DF005564CB /* herad.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = herad.cpp; path = adplug/src/herad.cpp; sourceTree = "<group>"; };
83D3C56B201C66DF005564CB /* nukedopl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = nukedopl.h; path = adplug/src/nukedopl.h; sourceTree = "<group>"; };
83D3C56C201C66E0005564CB /* raw.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = raw.h; path = adplug/src/raw.h; sourceTree = "<group>"; };
83D3C56D201C66E0005564CB /* ksm.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ksm.cpp; path = adplug/src/ksm.cpp; sourceTree = "<group>"; };
83D3C56E201C66E0005564CB /* got.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = got.cpp; path = adplug/src/got.cpp; sourceTree = "<group>"; };
83D3C570201C66E1005564CB /* vgm.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = vgm.cpp; path = adplug/src/vgm.cpp; sourceTree = "<group>"; };
83D3C571201C66E1005564CB /* rat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = rat.h; path = adplug/src/rat.h; sourceTree = "<group>"; };
83D3C572201C66E2005564CB /* adl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = adl.h; path = adplug/src/adl.h; sourceTree = "<group>"; };
83D3C573201C66E2005564CB /* sop.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sop.h; path = adplug/src/sop.h; sourceTree = "<group>"; };
83D3C574201C66E2005564CB /* rix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = rix.h; path = adplug/src/rix.h; sourceTree = "<group>"; };
83D3C575201C66E3005564CB /* bmf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = bmf.h; path = adplug/src/bmf.h; sourceTree = "<group>"; };
83D3C576201C66E3005564CB /* cff.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cff.h; path = adplug/src/cff.h; sourceTree = "<group>"; };
83D3C638201C6A81005564CB /* version.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = version.h; sourceTree = "<group>"; };
83D3C63A201C6AE2005564CB /* player.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = player.h; path = adplug/src/player.h; sourceTree = "<group>"; };
83D3C644201C6BB8005564CB /* database.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = database.cpp; path = adplug/src/database.cpp; sourceTree = "<group>"; };
83D3C645201C6BB8005564CB /* fprovide.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = fprovide.cpp; path = adplug/src/fprovide.cpp; sourceTree = "<group>"; };
83D3C646201C6BB8005564CB /* fprovide.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fprovide.h; path = adplug/src/fprovide.h; sourceTree = "<group>"; };
83D3C647201C6BB8005564CB /* database.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = database.h; path = adplug/src/database.h; sourceTree = "<group>"; };
83D3C64C201C6D37005564CB /* debug.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = debug.c; path = adplug/src/debug.c; sourceTree = "<group>"; };
83D3C64D201C6D38005564CB /* debug.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = debug.h; path = adplug/src/debug.h; sourceTree = "<group>"; };
83D3C661201C6EC3005564CB /* opl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = opl.h; path = adplug/src/opl.h; sourceTree = "<group>"; };
83D3C66F201D2C2C005564CB /* silentopl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = silentopl.h; path = adplug/src/silentopl.h; sourceTree = "<group>"; };
83D3C68C201D3864005564CB /* libbinio.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = libbinio.xcodeproj; path = ../libbinio/libbinio.xcodeproj; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
83D3C4D0201C654F005564CB /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
83D3C6A5201D3939005564CB /* libbinio.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
83D3C4CA201C654F005564CB = {
isa = PBXGroup;
children = (
83D3C4D6201C654F005564CB /* AdPlug */,
83D3C609201C6788005564CB /* Frameworks */,
83D3C4D5201C654F005564CB /* Products */,
);
sourceTree = "<group>";
};
83D3C4D5201C654F005564CB /* Products */ = {
isa = PBXGroup;
children = (
83D3C4D4201C654F005564CB /* AdPlug.framework */,
);
name = Products;
sourceTree = "<group>";
};
83D3C4D6201C654F005564CB /* AdPlug */ = {
isa = PBXGroup;
children = (
83D3C66F201D2C2C005564CB /* silentopl.h */,
83D3C661201C6EC3005564CB /* opl.h */,
83D3C55F201C66DC005564CB /* a2m.cpp */,
83D3C569201C66DF005564CB /* a2m.h */,
83D3C516201C66C6005564CB /* adl.cpp */,
83D3C572201C66E2005564CB /* adl.h */,
83D3C54C201C66D5005564CB /* adlib.cpp */,
83D3C558201C66DA005564CB /* adlib.h */,
83D3C505201C66C1005564CB /* adplug.cpp */,
83D3C50F201C66C4005564CB /* adplug.h */,
83D3C537201C66CE005564CB /* adtrack.cpp */,
83D3C53B201C66D0005564CB /* adtrack.h */,
83D3C50E201C66C4005564CB /* amd.cpp */,
83D3C54A201C66D4005564CB /* amd.h */,
83D3C50D201C66C3005564CB /* bam.cpp */,
83D3C527201C66CA005564CB /* bam.h */,
83D3C528201C66CA005564CB /* bmf.cpp */,
83D3C575201C66E3005564CB /* bmf.h */,
83D3C551201C66D6005564CB /* cff.cpp */,
83D3C576201C66E3005564CB /* cff.h */,
83D3C513201C66C5005564CB /* cmf.cpp */,
83D3C518201C66C6005564CB /* cmf.h */,
83D3C541201C66D2005564CB /* cmfmcsop.cpp */,
83D3C559201C66DA005564CB /* cmfmcsop.h */,
83D3C561201C66DC005564CB /* d00.cpp */,
83D3C519201C66C7005564CB /* d00.h */,
83D3C644201C6BB8005564CB /* database.cpp */,
83D3C647201C6BB8005564CB /* database.h */,
83D3C64C201C6D37005564CB /* debug.c */,
83D3C64D201C6D38005564CB /* debug.h */,
83D3C54F201C66D6005564CB /* dfm.cpp */,
83D3C556201C66D8005564CB /* dfm.h */,
83D3C515201C66C6005564CB /* dmo.cpp */,
83D3C545201C66D3005564CB /* dmo.h */,
83D3C54B201C66D5005564CB /* dro.cpp */,
83D3C52A201C66CB005564CB /* dro.h */,
83D3C562201C66DD005564CB /* dro2.cpp */,
83D3C550201C66D6005564CB /* dro2.h */,
83D3C53C201C66D0005564CB /* dtm.cpp */,
83D3C521201C66C9005564CB /* dtm.h */,
83D3C55C201C66DB005564CB /* flash.cpp */,
83D3C50B201C66C3005564CB /* flash.h */,
83D3C530201C66CD005564CB /* fmc.cpp */,
83D3C552201C66D7005564CB /* fmc.h */,
83D3C645201C6BB8005564CB /* fprovide.cpp */,
83D3C646201C6BB8005564CB /* fprovide.h */,
83D3C56E201C66E0005564CB /* got.cpp */,
83D3C557201C66D8005564CB /* got.h */,
83D3C56A201C66DF005564CB /* herad.cpp */,
83D3C526201C66CA005564CB /* herad.h */,
83D3C543201C66D2005564CB /* hsc.cpp */,
83D3C51B201C66C7005564CB /* hsc.h */,
83D3C529201C66CB005564CB /* hsp.cpp */,
83D3C512201C66C5005564CB /* hsp.h */,
83D3C50C201C66C3005564CB /* hybrid.cpp */,
83D3C539201C66CF005564CB /* hybrid.h */,
83D3C567201C66DE005564CB /* hyp.cpp */,
83D3C52C201C66CB005564CB /* hyp.h */,
83D3C53D201C66D0005564CB /* imf.cpp */,
83D3C546201C66D3005564CB /* imf.h */,
83D3C4D8201C6550005564CB /* Info.plist */,
83D3C54E201C66D6005564CB /* jbm.cpp */,
83D3C560201C66DC005564CB /* jbm.h */,
83D3C56D201C66E0005564CB /* ksm.cpp */,
83D3C509201C66C2005564CB /* ksm.h */,
83D3C536201C66CE005564CB /* lds.cpp */,
83D3C55D201C66DB005564CB /* lds.h */,
83D3C51A201C66C7005564CB /* mad.cpp */,
83D3C511201C66C4005564CB /* mad.h */,
83D3C553201C66D7005564CB /* mdi.cpp */,
83D3C51E201C66C8005564CB /* mdi.h */,
83D3C55B201C66DA005564CB /* mid.cpp */,
83D3C55A201C66DA005564CB /* mid.h */,
83D3C51F201C66C8005564CB /* mididata.h */,
83D3C52B201C66CB005564CB /* mkj.cpp */,
83D3C52E201C66CC005564CB /* mkj.h */,
83D3C51C201C66C7005564CB /* msc.cpp */,
83D3C538201C66CF005564CB /* msc.h */,
83D3C535201C66CE005564CB /* mtk.cpp */,
83D3C506201C66C2005564CB /* mtk.h */,
83D3C510201C66C4005564CB /* mus.cpp */,
83D3C52F201C66CC005564CB /* mus.h */,
83D3C532201C66CD005564CB /* nemuopl.cpp */,
83D3C544201C66D3005564CB /* nemuopl.h */,
83D3C50A201C66C3005564CB /* nukedopl.c */,
83D3C56B201C66DF005564CB /* nukedopl.h */,
83D3C517201C66C6005564CB /* player.cpp */,
83D3C63A201C6AE2005564CB /* player.h */,
83D3C548201C66D4005564CB /* players.cpp */,
83D3C53E201C66D1005564CB /* players.h */,
83D3C549201C66D4005564CB /* protrack.cpp */,
83D3C533201C66CD005564CB /* protrack.h */,
83D3C53A201C66CF005564CB /* psi.cpp */,
83D3C507201C66C2005564CB /* psi.h */,
83D3C51D201C66C8005564CB /* rad.cpp */,
83D3C504201C66C1005564CB /* rad.h */,
83D3C523201C66C9005564CB /* rat.cpp */,
83D3C571201C66E1005564CB /* rat.h */,
83D3C566201C66DE005564CB /* raw.cpp */,
83D3C56C201C66E0005564CB /* raw.h */,
83D3C54D201C66D5005564CB /* rix.cpp */,
83D3C574201C66E2005564CB /* rix.h */,
83D3C568201C66DE005564CB /* rol.cpp */,
83D3C555201C66D8005564CB /* rol.h */,
83D3C52D201C66CC005564CB /* s3m.cpp */,
83D3C520201C66C8005564CB /* s3m.h */,
83D3C540201C66D1005564CB /* sa2.cpp */,
83D3C554201C66D7005564CB /* sa2.h */,
83D3C522201C66C9005564CB /* sng.cpp */,
83D3C534201C66CE005564CB /* sng.h */,
83D3C563201C66DD005564CB /* sop.cpp */,
83D3C573201C66E2005564CB /* sop.h */,
83D3C514201C66C5005564CB /* u6m.cpp */,
83D3C53F201C66D1005564CB /* u6m.h */,
83D3C638201C6A81005564CB /* version.h */,
83D3C570201C66E1005564CB /* vgm.cpp */,
83D3C531201C66CD005564CB /* vgm.h */,
83D3C565201C66DE005564CB /* xad.cpp */,
83D3C564201C66DD005564CB /* xad.h */,
83D3C524201C66C9005564CB /* xsm.cpp */,
83D3C55E201C66DB005564CB /* xsm.h */,
);
path = AdPlug;
sourceTree = "<group>";
};
83D3C609201C6788005564CB /* Frameworks */ = {
isa = PBXGroup;
children = (
83D3C68C201D3864005564CB /* libbinio.xcodeproj */,
);
name = Frameworks;
sourceTree = "<group>";
};
83D3C68D201D3864005564CB /* Products */ = {
isa = PBXGroup;
children = (
83D3C691201D3864005564CB /* libbinio.framework */,
);
name = Products;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
83D3C4D1201C654F005564CB /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
83D3C582201C66E3005564CB /* adplug.h in Headers */,
83D3C63B201C6AE2005564CB /* player.h in Headers */,
83D3C662201C6EC4005564CB /* opl.h in Headers */,
83D3C64A201C6BB9005564CB /* fprovide.h in Headers */,
83D3C5B1201C66E3005564CB /* players.h in Headers */,
83D3C64B201C6BB9005564CB /* database.h in Headers */,
83D3C5B7201C66E3005564CB /* nemuopl.h in Headers */,
83D3C670201D2C2C005564CB /* silentopl.h in Headers */,
83D3C5B9201C66E3005564CB /* imf.h in Headers */,
83D3C5DC201C66E3005564CB /* a2m.h in Headers */,
83D3C594201C66E3005564CB /* dtm.h in Headers */,
83D3C5A6201C66E3005564CB /* protrack.h in Headers */,
83D3C5B2201C66E3005564CB /* u6m.h in Headers */,
83D3C599201C66E3005564CB /* herad.h in Headers */,
83D3C5E5201C66E3005564CB /* adl.h in Headers */,
83D3C5A7201C66E3005564CB /* sng.h in Headers */,
83D3C59A201C66E3005564CB /* bam.h in Headers */,
83D3C592201C66E3005564CB /* mididata.h in Headers */,
83D3C58E201C66E3005564CB /* hsc.h in Headers */,
83D3C5E6201C66E3005564CB /* sop.h in Headers */,
83D3C5A1201C66E3005564CB /* mkj.h in Headers */,
83D3C5CC201C66E3005564CB /* cmfmcsop.h in Headers */,
83D3C5DF201C66E3005564CB /* raw.h in Headers */,
83D3C58B201C66E3005564CB /* cmf.h in Headers */,
83D3C58C201C66E3005564CB /* d00.h in Headers */,
83D3C5C8201C66E3005564CB /* rol.h in Headers */,
83D3C584201C66E3005564CB /* mad.h in Headers */,
83D3C57A201C66E3005564CB /* psi.h in Headers */,
83D3C577201C66E3005564CB /* rad.h in Headers */,
83D3C5D1201C66E3005564CB /* xsm.h in Headers */,
83D3C639201C6A81005564CB /* version.h in Headers */,
83D3C5A4201C66E3005564CB /* vgm.h in Headers */,
83D3C5AC201C66E3005564CB /* hybrid.h in Headers */,
83D3C5E4201C66E3005564CB /* rat.h in Headers */,
83D3C5C7201C66E3005564CB /* sa2.h in Headers */,
83D3C5C5201C66E3005564CB /* fmc.h in Headers */,
83D3C5E8201C66E3005564CB /* bmf.h in Headers */,
83D3C5CA201C66E3005564CB /* got.h in Headers */,
83D3C5D3201C66E3005564CB /* jbm.h in Headers */,
83D3C5D7201C66E3005564CB /* xad.h in Headers */,
83D3C5C3201C66E3005564CB /* dro2.h in Headers */,
83D3C64F201C6D38005564CB /* debug.h in Headers */,
83D3C57E201C66E3005564CB /* flash.h in Headers */,
83D3C593201C66E3005564CB /* s3m.h in Headers */,
83D3C59D201C66E3005564CB /* dro.h in Headers */,
83D3C5CB201C66E3005564CB /* adlib.h in Headers */,
83D3C5E9201C66E3005564CB /* cff.h in Headers */,
83D3C57C201C66E3005564CB /* ksm.h in Headers */,
83D3C579201C66E3005564CB /* mtk.h in Headers */,
83D3C5AE201C66E3005564CB /* adtrack.h in Headers */,
83D3C591201C66E3005564CB /* mdi.h in Headers */,
83D3C5CD201C66E3005564CB /* mid.h in Headers */,
83D3C5DE201C66E3005564CB /* nukedopl.h in Headers */,
83D3C585201C66E3005564CB /* hsp.h in Headers */,
83D3C5A2201C66E3005564CB /* mus.h in Headers */,
83D3C5E7201C66E3005564CB /* rix.h in Headers */,
83D3C5B8201C66E3005564CB /* dmo.h in Headers */,
83D3C59F201C66E3005564CB /* hyp.h in Headers */,
83D3C5C9201C66E3005564CB /* dfm.h in Headers */,
83D3C5BD201C66E3005564CB /* amd.h in Headers */,
83D3C5AB201C66E3005564CB /* msc.h in Headers */,
83D3C5D0201C66E3005564CB /* lds.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
83D3C4D3201C654F005564CB /* AdPlug */ = {
isa = PBXNativeTarget;
buildConfigurationList = 83D3C4DC201C6550005564CB /* Build configuration list for PBXNativeTarget "AdPlug" */;
buildPhases = (
83D3C4CF201C654F005564CB /* Sources */,
83D3C4D0201C654F005564CB /* Frameworks */,
83D3C4D1201C654F005564CB /* Headers */,
83D3C4D2201C654F005564CB /* Resources */,
83D3C65F201C6E56005564CB /* CopyFiles */,
);
buildRules = (
);
dependencies = (
83D3C6A4201D38FE005564CB /* PBXTargetDependency */,
);
name = AdPlug;
productName = AdPlug;
productReference = 83D3C4D4201C654F005564CB /* AdPlug.framework */;
productType = "com.apple.product-type.framework";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
83D3C4CB201C654F005564CB /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0920;
ORGANIZATIONNAME = "Christopher Snowhill";
TargetAttributes = {
83D3C4D3201C654F005564CB = {
CreatedOnToolsVersion = 9.2;
ProvisioningStyle = Automatic;
};
};
};
buildConfigurationList = 83D3C4CE201C654F005564CB /* Build configuration list for PBXProject "AdPlug" */;
compatibilityVersion = "Xcode 8.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
en,
);
mainGroup = 83D3C4CA201C654F005564CB;
productRefGroup = 83D3C4D5201C654F005564CB /* Products */;
projectDirPath = "";
projectReferences = (
{
ProductGroup = 83D3C68D201D3864005564CB /* Products */;
ProjectRef = 83D3C68C201D3864005564CB /* libbinio.xcodeproj */;
},
);
projectRoot = "";
targets = (
83D3C4D3201C654F005564CB /* AdPlug */,
);
};
/* End PBXProject section */
/* Begin PBXReferenceProxy section */
83D3C691201D3864005564CB /* libbinio.framework */ = {
isa = PBXReferenceProxy;
fileType = wrapper.framework;
path = libbinio.framework;
remoteRef = 83D3C690201D3864005564CB /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
/* End PBXReferenceProxy section */
/* Begin PBXResourcesBuildPhase section */
83D3C4D2201C654F005564CB /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
83D3C4CF201C654F005564CB /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
83D3C5D6201C66E3005564CB /* sop.cpp in Sources */,
83D3C5C6201C66E3005564CB /* mdi.cpp in Sources */,
83D3C648201C6BB9005564CB /* database.cpp in Sources */,
83D3C5E1201C66E3005564CB /* got.cpp in Sources */,
83D3C595201C66E3005564CB /* sng.cpp in Sources */,
83D3C5E0201C66E3005564CB /* ksm.cpp in Sources */,
83D3C5CE201C66E3005564CB /* mid.cpp in Sources */,
83D3C5C1201C66E3005564CB /* jbm.cpp in Sources */,
83D3C590201C66E3005564CB /* rad.cpp in Sources */,
83D3C587201C66E3005564CB /* u6m.cpp in Sources */,
83D3C5C0201C66E3005564CB /* rix.cpp in Sources */,
83D3C59C201C66E3005564CB /* hsp.cpp in Sources */,
83D3C589201C66E3005564CB /* adl.cpp in Sources */,
83D3C581201C66E3005564CB /* amd.cpp in Sources */,
83D3C5A9201C66E3005564CB /* lds.cpp in Sources */,
83D3C5AD201C66E3005564CB /* psi.cpp in Sources */,
83D3C5A3201C66E3005564CB /* fmc.cpp in Sources */,
83D3C5AF201C66E3005564CB /* dtm.cpp in Sources */,
83D3C5B4201C66E3005564CB /* cmfmcsop.cpp in Sources */,
83D3C58F201C66E3005564CB /* msc.cpp in Sources */,
83D3C597201C66E3005564CB /* xsm.cpp in Sources */,
83D3C5A0201C66E3005564CB /* s3m.cpp in Sources */,
83D3C5BF201C66E3005564CB /* adlib.cpp in Sources */,
83D3C59E201C66E3005564CB /* mkj.cpp in Sources */,
83D3C5D4201C66E3005564CB /* d00.cpp in Sources */,
83D3C5CF201C66E3005564CB /* flash.cpp in Sources */,
83D3C649201C6BB9005564CB /* fprovide.cpp in Sources */,
83D3C5BB201C66E3005564CB /* players.cpp in Sources */,
83D3C5DA201C66E3005564CB /* hyp.cpp in Sources */,
83D3C64E201C6D38005564CB /* debug.c in Sources */,
83D3C5B6201C66E3005564CB /* hsc.cpp in Sources */,
83D3C5C4201C66E3005564CB /* cff.cpp in Sources */,
83D3C5DD201C66E3005564CB /* herad.cpp in Sources */,
83D3C580201C66E3005564CB /* bam.cpp in Sources */,
83D3C5D2201C66E3005564CB /* a2m.cpp in Sources */,
83D3C5BC201C66E3005564CB /* protrack.cpp in Sources */,
83D3C5AA201C66E3005564CB /* adtrack.cpp in Sources */,
83D3C5D8201C66E3005564CB /* xad.cpp in Sources */,
83D3C57F201C66E3005564CB /* hybrid.cpp in Sources */,
83D3C5D5201C66E3005564CB /* dro2.cpp in Sources */,
83D3C5A5201C66E3005564CB /* nemuopl.cpp in Sources */,
83D3C5A8201C66E3005564CB /* mtk.cpp in Sources */,
83D3C578201C66E3005564CB /* adplug.cpp in Sources */,
83D3C5E3201C66E3005564CB /* vgm.cpp in Sources */,
83D3C596201C66E3005564CB /* rat.cpp in Sources */,
83D3C59B201C66E3005564CB /* bmf.cpp in Sources */,
83D3C5BE201C66E3005564CB /* dro.cpp in Sources */,
83D3C588201C66E3005564CB /* dmo.cpp in Sources */,
83D3C5DB201C66E3005564CB /* rol.cpp in Sources */,
83D3C5B0201C66E3005564CB /* imf.cpp in Sources */,
83D3C5C2201C66E3005564CB /* dfm.cpp in Sources */,
83D3C58A201C66E3005564CB /* player.cpp in Sources */,
83D3C58D201C66E3005564CB /* mad.cpp in Sources */,
83D3C583201C66E3005564CB /* mus.cpp in Sources */,
83D3C586201C66E3005564CB /* cmf.cpp in Sources */,
83D3C5D9201C66E3005564CB /* raw.cpp in Sources */,
83D3C5B3201C66E3005564CB /* sa2.cpp in Sources */,
83D3C57D201C66E3005564CB /* nukedopl.c in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
83D3C6A4201D38FE005564CB /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = libbinio;
targetProxy = 83D3C6A3201D38FE005564CB /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin XCBuildConfiguration section */
83D3C4DA201C6550005564CB /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "Mac Developer";
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.13;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
83D3C4DB201C6550005564CB /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "Mac Developer";
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.13;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = macosx;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
83D3C4DD201C6550005564CB /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_IDENTITY = "";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = N6E749HJ2X;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
FRAMEWORK_VERSION = A;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
"stricmp=strcasecmp",
);
HEADER_SEARCH_PATHS = (
"$(SRCROOT)/../libbinio/libbinio/libbinio/src",
"$(SRCROOT)/../libbinio/libbinio",
);
INFOPLIST_FILE = AdPlug/Info.plist;
INSTALL_PATH = "@loader_path/../Frameworks";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks";
MACOSX_DEPLOYMENT_TARGET = 10.7;
PRODUCT_BUNDLE_IDENTIFIER = net.kode54.AdPlug;
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
SKIP_INSTALL = YES;
};
name = Debug;
};
83D3C4DE201C6550005564CB /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_IDENTITY = "";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = N6E749HJ2X;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
FRAMEWORK_VERSION = A;
GCC_PREPROCESSOR_DEFINITIONS = "stricmp=strcasecmp";
HEADER_SEARCH_PATHS = (
"$(SRCROOT)/../libbinio/libbinio/libbinio/src",
"$(SRCROOT)/../libbinio/libbinio",
);
INFOPLIST_FILE = AdPlug/Info.plist;
INSTALL_PATH = "@loader_path/../Frameworks";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks";
MACOSX_DEPLOYMENT_TARGET = 10.7;
PRODUCT_BUNDLE_IDENTIFIER = net.kode54.AdPlug;
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
SKIP_INSTALL = YES;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
83D3C4CE201C654F005564CB /* Build configuration list for PBXProject "AdPlug" */ = {
isa = XCConfigurationList;
buildConfigurations = (
83D3C4DA201C6550005564CB /* Debug */,
83D3C4DB201C6550005564CB /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
83D3C4DC201C6550005564CB /* Build configuration list for PBXNativeTarget "AdPlug" */ = {
isa = XCConfigurationList;
buildConfigurations = (
83D3C4DD201C6550005564CB /* Debug */,
83D3C4DE201C6550005564CB /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 83D3C4CB201C654F005564CB /* Project object */;
}

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright © 2018 Christopher Snowhill. All rights reserved.</string>
<key>NSPrincipalClass</key>
<string></string>
</dict>
</plist>

@ -0,0 +1 @@
Subproject commit 14557a40b120e4361cc57575e82cc0be85d9191d

@ -0,0 +1 @@
Subproject commit 7ac0819ec55d6dd1ffe42890f82c3ada05d101b5

View File

@ -0,0 +1 @@
#define ADPLUG_VERSION "2.3-5-g14557a4"

View File

@ -0,0 +1,345 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 48;
objects = {
/* Begin PBXBuildFile section */
83D3C693201D3870005564CB /* binio.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C692201D3870005564CB /* binio.h */; settings = {ATTRIBUTES = (Public, ); }; };
83D3C69B201D388C005564CB /* binfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C694201D388B005564CB /* binfile.cpp */; };
83D3C69C201D388C005564CB /* binwrap.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C695201D388B005564CB /* binwrap.h */; settings = {ATTRIBUTES = (Public, ); }; };
83D3C69D201D388C005564CB /* binstr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C696201D388B005564CB /* binstr.cpp */; };
83D3C69E201D388C005564CB /* binfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C697201D388B005564CB /* binfile.h */; settings = {ATTRIBUTES = (Public, ); }; };
83D3C69F201D388C005564CB /* binwrap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C698201D388C005564CB /* binwrap.cpp */; };
83D3C6A0201D388C005564CB /* binstr.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D3C699201D388C005564CB /* binstr.h */; settings = {ATTRIBUTES = (Public, ); }; };
83D3C6A1201D388C005564CB /* binio.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C69A201D388C005564CB /* binio.cpp */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
83D3C67B201D37D8005564CB /* libbinio.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = libbinio.framework; sourceTree = BUILT_PRODUCTS_DIR; };
83D3C67F201D37D8005564CB /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
83D3C692201D3870005564CB /* binio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = binio.h; sourceTree = "<group>"; };
83D3C694201D388B005564CB /* binfile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = binfile.cpp; path = libbinio/src/binfile.cpp; sourceTree = "<group>"; };
83D3C695201D388B005564CB /* binwrap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = binwrap.h; path = libbinio/src/binwrap.h; sourceTree = "<group>"; };
83D3C696201D388B005564CB /* binstr.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = binstr.cpp; path = libbinio/src/binstr.cpp; sourceTree = "<group>"; };
83D3C697201D388B005564CB /* binfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = binfile.h; path = libbinio/src/binfile.h; sourceTree = "<group>"; };
83D3C698201D388C005564CB /* binwrap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = binwrap.cpp; path = libbinio/src/binwrap.cpp; sourceTree = "<group>"; };
83D3C699201D388C005564CB /* binstr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = binstr.h; path = libbinio/src/binstr.h; sourceTree = "<group>"; };
83D3C69A201D388C005564CB /* binio.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = binio.cpp; path = libbinio/src/binio.cpp; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
83D3C677201D37D8005564CB /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
83D3C671201D37D8005564CB = {
isa = PBXGroup;
children = (
83D3C67D201D37D8005564CB /* libbinio */,
83D3C67C201D37D8005564CB /* Products */,
);
sourceTree = "<group>";
};
83D3C67C201D37D8005564CB /* Products */ = {
isa = PBXGroup;
children = (
83D3C67B201D37D8005564CB /* libbinio.framework */,
);
name = Products;
sourceTree = "<group>";
};
83D3C67D201D37D8005564CB /* libbinio */ = {
isa = PBXGroup;
children = (
83D3C694201D388B005564CB /* binfile.cpp */,
83D3C697201D388B005564CB /* binfile.h */,
83D3C69A201D388C005564CB /* binio.cpp */,
83D3C696201D388B005564CB /* binstr.cpp */,
83D3C699201D388C005564CB /* binstr.h */,
83D3C698201D388C005564CB /* binwrap.cpp */,
83D3C695201D388B005564CB /* binwrap.h */,
83D3C692201D3870005564CB /* binio.h */,
83D3C67F201D37D8005564CB /* Info.plist */,
);
path = libbinio;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
83D3C678201D37D8005564CB /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
83D3C69E201D388C005564CB /* binfile.h in Headers */,
83D3C693201D3870005564CB /* binio.h in Headers */,
83D3C6A0201D388C005564CB /* binstr.h in Headers */,
83D3C69C201D388C005564CB /* binwrap.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
83D3C67A201D37D8005564CB /* libbinio */ = {
isa = PBXNativeTarget;
buildConfigurationList = 83D3C683201D37D8005564CB /* Build configuration list for PBXNativeTarget "libbinio" */;
buildPhases = (
83D3C676201D37D8005564CB /* Sources */,
83D3C677201D37D8005564CB /* Frameworks */,
83D3C678201D37D8005564CB /* Headers */,
83D3C679201D37D8005564CB /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = libbinio;
productName = libbinio;
productReference = 83D3C67B201D37D8005564CB /* libbinio.framework */;
productType = "com.apple.product-type.framework";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
83D3C672201D37D8005564CB /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0920;
ORGANIZATIONNAME = "Christopher Snowhill";
TargetAttributes = {
83D3C67A201D37D8005564CB = {
CreatedOnToolsVersion = 9.2;
ProvisioningStyle = Automatic;
};
};
};
buildConfigurationList = 83D3C675201D37D8005564CB /* Build configuration list for PBXProject "libbinio" */;
compatibilityVersion = "Xcode 8.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
en,
);
mainGroup = 83D3C671201D37D8005564CB;
productRefGroup = 83D3C67C201D37D8005564CB /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
83D3C67A201D37D8005564CB /* libbinio */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
83D3C679201D37D8005564CB /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
83D3C676201D37D8005564CB /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
83D3C69B201D388C005564CB /* binfile.cpp in Sources */,
83D3C69D201D388C005564CB /* binstr.cpp in Sources */,
83D3C69F201D388C005564CB /* binwrap.cpp in Sources */,
83D3C6A1201D388C005564CB /* binio.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
83D3C681201D37D8005564CB /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "Mac Developer";
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.13;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
83D3C682201D37D8005564CB /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "Mac Developer";
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.13;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = macosx;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
83D3C684201D37D8005564CB /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_IDENTITY = "";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = N6E749HJ2X;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
FRAMEWORK_VERSION = A;
INFOPLIST_FILE = libbinio/Info.plist;
INSTALL_PATH = "@loader_path/Frameworks";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @loader_path/Frameworks @loader_path/../Frameworks";
MACOSX_DEPLOYMENT_TARGET = 10.7;
PRODUCT_BUNDLE_IDENTIFIER = net.kode54.libbinio;
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
SKIP_INSTALL = YES;
};
name = Debug;
};
83D3C685201D37D8005564CB /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_IDENTITY = "";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = N6E749HJ2X;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
FRAMEWORK_VERSION = A;
INFOPLIST_FILE = libbinio/Info.plist;
INSTALL_PATH = "@loader_path/Frameworks";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @loader_path/Frameworks @loader_path/../Frameworks";
MACOSX_DEPLOYMENT_TARGET = 10.7;
PRODUCT_BUNDLE_IDENTIFIER = net.kode54.libbinio;
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
SKIP_INSTALL = YES;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
83D3C675201D37D8005564CB /* Build configuration list for PBXProject "libbinio" */ = {
isa = XCConfigurationList;
buildConfigurations = (
83D3C681201D37D8005564CB /* Debug */,
83D3C682201D37D8005564CB /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
83D3C683201D37D8005564CB /* Build configuration list for PBXNativeTarget "libbinio" */ = {
isa = XCConfigurationList;
buildConfigurations = (
83D3C684201D37D8005564CB /* Debug */,
83D3C685201D37D8005564CB /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 83D3C672201D37D8005564CB /* Project object */;
}

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright © 2018 Christopher Snowhill. All rights reserved.</string>
<key>NSPrincipalClass</key>
<string></string>
</dict>
</plist>

View File

@ -0,0 +1,175 @@
/* -*-C++-*-
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* binio.h - Binary stream I/O classes
* Copyright (C) 2002, 2003, 2005 Simon Peter <dn.tlp@gmx.net>
*/
#ifndef H_BINIO_BINIO
#define H_BINIO_BINIO
/***** Configuration *****/
// BINIO_ENABLE_STRING - Build std::string supporting methods
//
// Set to 1 to build std::string supporting methods. You need the STL to
// do this.
#define BINIO_ENABLE_STRING 1
// BINIO_ENABLE_IOSTREAM - Build iostream wrapper classes
//
// Set to 1 to build the iostream wrapper classes. You need the standard
// C++ library to do this.
#define BINIO_ENABLE_IOSTREAM 1
// BINIO_ISO_STDLIB - Build with ISO C++ standard library compliance
//
// Set to 1 to build for the ISO standard C++ library (i.e. namespaces, STL and
// templatized iostream). Set to 0 to build for the traditional C++ library.
#define BINIO_ISO_STDLIB 1
// BINIO_WITH_MATH - Build with 'math.h' dependency to allow float conversions
//
// Set to 1 to also build routines that depend on the 'math.h' standard C header
// file (this sometimes also implies a 'libm' or 'libmath' dependency). These
// routines are needed in order to write IEEE-754 floating-point numbers on a
// system that doesn't support this format natively. For only reading these
// numbers, however, these routines are not needed. If set to 0, writing
// IEEE-754 numbers on an incompatible system will be disabled.
#define BINIO_WITH_MATH 1
/***** Implementation *****/
// Disable annoying multiple inheritance compiler warning on MSVC6
#ifdef _MSC_VER
# pragma warning(disable: 4250)
#endif
#if BINIO_ENABLE_STRING
#include <string>
#endif
class binio
{
public:
typedef enum {
BigEndian = 1 << 0,
FloatIEEE = 1 << 1
} Flag;
typedef enum {
NoError = 0,
Fatal = 1 << 0,
Unsupported = 1 << 1,
NotOpen = 1 << 2,
Denied = 1 << 3,
NotFound = 1 << 4,
Eof = 1 << 5
} ErrorCode;
typedef enum { Set, Add, End } Offset;
typedef enum { Single, Double } FType;
typedef int Error;
binio();
virtual ~binio();
void setFlag(Flag f, bool set = true);
bool getFlag(Flag f);
Error error();
bool eof();
virtual void seek(long, Offset = Set) = 0;
virtual long pos() = 0;
protected:
typedef long long Int;
typedef long double Float;
typedef unsigned char Byte; // has to be unsigned!
typedef int Flags;
Flags my_flags;
static const Flags system_flags;
Error err;
// Some math.h emulation functions...
#if !BINIO_WITH_MATH
Float pow(Float base, signed int exp);
Float ldexp(Float x, signed int exp) { return x * pow(2, exp); }
#endif
private:
static const Flags detect_system_flags();
};
class binistream: virtual public binio
{
public:
binistream();
virtual ~binistream();
Int readInt(unsigned int size);
Float readFloat(FType ft);
unsigned long readString(char *str, unsigned long maxlen);
unsigned long readString(char *str, unsigned long maxlen, const char delim);
#if BINIO_ENABLE_STRING
std::string readString(const char delim = '\0');
#endif
Int peekInt(unsigned int size);
Float peekFloat(FType ft);
bool ateof();
void ignore(unsigned long amount = 1);
protected:
virtual Byte getByte() = 0;
private:
Float ieee_single2float(Byte *data);
Float ieee_double2float(Byte *data);
};
class binostream: virtual public binio
{
public:
binostream();
virtual ~binostream();
void writeInt(Int val, unsigned int size);
void writeFloat(Float f, FType ft);
unsigned long writeString(const char *str, unsigned long amount = 0);
#if BINIO_ENABLE_STRING
unsigned long writeString(const std::string &str);
#endif
protected:
virtual void putByte(Byte) = 0;
private:
void float2ieee_single(Float f, Byte *data);
void float2ieee_double(Float f, Byte *data);
};
class binstream: public binistream, public binostream
{
public:
binstream();
virtual ~binstream();
};
#endif

@ -0,0 +1 @@
Subproject commit 282de6071b28f85703d40860d4eb8d87d6a0f5dd

View File

@ -0,0 +1,413 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 48;
objects = {
/* Begin PBXBuildFile section */
83D3C659201C6E24005564CB /* AdPlugContainer.mm in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C654201C6E24005564CB /* AdPlugContainer.mm */; };
83D3C65A201C6E24005564CB /* AdPlugMetadataReader.mm in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C656201C6E24005564CB /* AdPlugMetadataReader.mm */; };
83D3C65B201C6E24005564CB /* AdPlugDecoder.mm in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C658201C6E24005564CB /* AdPlugDecoder.mm */; };
83D3C65E201C6E4D005564CB /* AdPlug.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 83D3C608201C6775005564CB /* AdPlug.framework */; };
83D3C668201C7020005564CB /* adplug.db in Resources */ = {isa = PBXBuildFile; fileRef = 83D3C667201C7020005564CB /* adplug.db */; };
83D3C66C201C70F7005564CB /* fileprovider.mm in Sources */ = {isa = PBXBuildFile; fileRef = 83D3C66A201C70F7005564CB /* fileprovider.mm */; };
83D3C66E201C72ED005564CB /* AdPlug.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 83D3C608201C6775005564CB /* AdPlug.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
83D3C6A6201D3951005564CB /* libbinio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 83D3C6A7201D3951005564CB /* libbinio.framework */; };
83D3C6A8201D3961005564CB /* libbinio.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 83D3C6A7201D3951005564CB /* libbinio.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
83D3C607201C6775005564CB /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 83D3C603201C6775005564CB /* AdPlug.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 83D3C4D4201C654F005564CB;
remoteInfo = AdPlug;
};
83D3C65C201C6E48005564CB /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 83D3C603201C6775005564CB /* AdPlug.xcodeproj */;
proxyType = 1;
remoteGlobalIDString = 83D3C4D3201C654F005564CB;
remoteInfo = AdPlug;
};
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */
83D3C66D201C72E3005564CB /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 10;
files = (
83D3C6A8201D3961005564CB /* libbinio.framework in CopyFiles */,
83D3C66E201C72ED005564CB /* AdPlug.framework in CopyFiles */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
83D3C5F3201C674D005564CB /* AdPlug.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AdPlug.bundle; sourceTree = BUILT_PRODUCTS_DIR; };
83D3C5F6201C674D005564CB /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
83D3C603201C6775005564CB /* AdPlug.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = AdPlug.xcodeproj; path = ../../Frameworks/AdPlug/AdPlug.xcodeproj; sourceTree = "<group>"; };
83D3C650201C6DE9005564CB /* Logging.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Logging.h; path = ../../../Utils/Logging.h; sourceTree = "<group>"; };
83D3C651201C6E00005564CB /* PlaylistController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PlaylistController.h; path = ../../../Playlist/PlaylistController.h; sourceTree = "<group>"; };
83D3C652201C6E10005564CB /* Plugin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Plugin.h; path = ../../../Audio/Plugin.h; sourceTree = "<group>"; };
83D3C653201C6E23005564CB /* AdPlugDecoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdPlugDecoder.h; sourceTree = "<group>"; };
83D3C654201C6E24005564CB /* AdPlugContainer.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = AdPlugContainer.mm; sourceTree = "<group>"; };
83D3C655201C6E24005564CB /* AdPlugMetadataReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdPlugMetadataReader.h; sourceTree = "<group>"; };
83D3C656201C6E24005564CB /* AdPlugMetadataReader.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = AdPlugMetadataReader.mm; sourceTree = "<group>"; };
83D3C657201C6E24005564CB /* AdPlugContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdPlugContainer.h; sourceTree = "<group>"; };
83D3C658201C6E24005564CB /* AdPlugDecoder.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = AdPlugDecoder.mm; sourceTree = "<group>"; };
83D3C667201C7020005564CB /* adplug.db */ = {isa = PBXFileReference; lastKnownFileType = file; name = adplug.db; path = ../../../Frameworks/AdPlug/AdPlug/database/adplug.db; sourceTree = "<group>"; };
83D3C669201C70E7005564CB /* fileprovider.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = fileprovider.h; sourceTree = "<group>"; };
83D3C66A201C70F7005564CB /* fileprovider.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = fileprovider.mm; sourceTree = "<group>"; };
83D3C6A7201D3951005564CB /* libbinio.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = libbinio.framework; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
83D3C5F0201C674D005564CB /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
83D3C6A6201D3951005564CB /* libbinio.framework in Frameworks */,
83D3C65E201C6E4D005564CB /* AdPlug.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
83D3C5EA201C674D005564CB = {
isa = PBXGroup;
children = (
83D3C5F5201C674D005564CB /* AdPlug */,
83D3C602201C675D005564CB /* Frameworks */,
83D3C5F4201C674D005564CB /* Products */,
);
sourceTree = "<group>";
};
83D3C5F4201C674D005564CB /* Products */ = {
isa = PBXGroup;
children = (
83D3C5F3201C674D005564CB /* AdPlug.bundle */,
);
name = Products;
sourceTree = "<group>";
};
83D3C5F5201C674D005564CB /* AdPlug */ = {
isa = PBXGroup;
children = (
83D3C667201C7020005564CB /* adplug.db */,
83D3C657201C6E24005564CB /* AdPlugContainer.h */,
83D3C654201C6E24005564CB /* AdPlugContainer.mm */,
83D3C653201C6E23005564CB /* AdPlugDecoder.h */,
83D3C658201C6E24005564CB /* AdPlugDecoder.mm */,
83D3C655201C6E24005564CB /* AdPlugMetadataReader.h */,
83D3C656201C6E24005564CB /* AdPlugMetadataReader.mm */,
83D3C650201C6DE9005564CB /* Logging.h */,
83D3C651201C6E00005564CB /* PlaylistController.h */,
83D3C652201C6E10005564CB /* Plugin.h */,
83D3C5F6201C674D005564CB /* Info.plist */,
83D3C669201C70E7005564CB /* fileprovider.h */,
83D3C66A201C70F7005564CB /* fileprovider.mm */,
);
path = AdPlug;
sourceTree = "<group>";
};
83D3C602201C675D005564CB /* Frameworks */ = {
isa = PBXGroup;
children = (
83D3C6A7201D3951005564CB /* libbinio.framework */,
83D3C603201C6775005564CB /* AdPlug.xcodeproj */,
);
name = Frameworks;
sourceTree = "<group>";
};
83D3C604201C6775005564CB /* Products */ = {
isa = PBXGroup;
children = (
83D3C608201C6775005564CB /* AdPlug.framework */,
);
name = Products;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
83D3C5F2201C674D005564CB /* AdPlug */ = {
isa = PBXNativeTarget;
buildConfigurationList = 83D3C5F9201C674D005564CB /* Build configuration list for PBXNativeTarget "AdPlug" */;
buildPhases = (
83D3C5EF201C674D005564CB /* Sources */,
83D3C5F0201C674D005564CB /* Frameworks */,
83D3C5F1201C674D005564CB /* Resources */,
83D3C66D201C72E3005564CB /* CopyFiles */,
);
buildRules = (
);
dependencies = (
83D3C65D201C6E48005564CB /* PBXTargetDependency */,
);
name = AdPlug;
productName = AdPlug;
productReference = 83D3C5F3201C674D005564CB /* AdPlug.bundle */;
productType = "com.apple.product-type.bundle";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
83D3C5EB201C674D005564CB /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0920;
ORGANIZATIONNAME = "Christopher Snowhill";
TargetAttributes = {
83D3C5F2201C674D005564CB = {
CreatedOnToolsVersion = 9.2;
ProvisioningStyle = Automatic;
};
};
};
buildConfigurationList = 83D3C5EE201C674D005564CB /* Build configuration list for PBXProject "AdPlug" */;
compatibilityVersion = "Xcode 8.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
en,
);
mainGroup = 83D3C5EA201C674D005564CB;
productRefGroup = 83D3C5F4201C674D005564CB /* Products */;
projectDirPath = "";
projectReferences = (
{
ProductGroup = 83D3C604201C6775005564CB /* Products */;
ProjectRef = 83D3C603201C6775005564CB /* AdPlug.xcodeproj */;
},
);
projectRoot = "";
targets = (
83D3C5F2201C674D005564CB /* AdPlug */,
);
};
/* End PBXProject section */
/* Begin PBXReferenceProxy section */
83D3C608201C6775005564CB /* AdPlug.framework */ = {
isa = PBXReferenceProxy;
fileType = wrapper.framework;
path = AdPlug.framework;
remoteRef = 83D3C607201C6775005564CB /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
/* End PBXReferenceProxy section */
/* Begin PBXResourcesBuildPhase section */
83D3C5F1201C674D005564CB /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
83D3C668201C7020005564CB /* adplug.db in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
83D3C5EF201C674D005564CB /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
83D3C66C201C70F7005564CB /* fileprovider.mm in Sources */,
83D3C65A201C6E24005564CB /* AdPlugMetadataReader.mm in Sources */,
83D3C65B201C6E24005564CB /* AdPlugDecoder.mm in Sources */,
83D3C659201C6E24005564CB /* AdPlugContainer.mm in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
83D3C65D201C6E48005564CB /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = AdPlug;
targetProxy = 83D3C65C201C6E48005564CB /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin XCBuildConfiguration section */
83D3C5F7201C674D005564CB /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "Mac Developer";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.13;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
};
name = Debug;
};
83D3C5F8201C674D005564CB /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "Mac Developer";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.13;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = macosx;
};
name = Release;
};
83D3C5FA201C674D005564CB /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_IDENTITY = "";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = N6E749HJ2X;
HEADER_SEARCH_PATHS = (
"$(SRCROOT)/../../Frameworks/libbinio/libbinio/libbinio/src",
"$(SRCROOT)/../../Frameworks/libbinio/libbinio",
);
INFOPLIST_FILE = AdPlug/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles";
LD_RUNPATH_SEARCH_PATHS = "@loader_path/../Frameworks";
MACOSX_DEPLOYMENT_TARGET = 10.7;
PRODUCT_BUNDLE_IDENTIFIER = net.kode54.AdPlug;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
WRAPPER_EXTENSION = bundle;
};
name = Debug;
};
83D3C5FB201C674D005564CB /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_IDENTITY = "";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = N6E749HJ2X;
HEADER_SEARCH_PATHS = (
"$(SRCROOT)/../../Frameworks/libbinio/libbinio/libbinio/src",
"$(SRCROOT)/../../Frameworks/libbinio/libbinio",
);
INFOPLIST_FILE = AdPlug/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles";
LD_RUNPATH_SEARCH_PATHS = "@loader_path/../Frameworks";
MACOSX_DEPLOYMENT_TARGET = 10.7;
PRODUCT_BUNDLE_IDENTIFIER = net.kode54.AdPlug;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
WRAPPER_EXTENSION = bundle;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
83D3C5EE201C674D005564CB /* Build configuration list for PBXProject "AdPlug" */ = {
isa = XCConfigurationList;
buildConfigurations = (
83D3C5F7201C674D005564CB /* Debug */,
83D3C5F8201C674D005564CB /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
83D3C5F9201C674D005564CB /* Build configuration list for PBXNativeTarget "AdPlug" */ = {
isa = XCConfigurationList;
buildConfigurations = (
83D3C5FA201C674D005564CB /* Debug */,
83D3C5FB201C674D005564CB /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 83D3C5EB201C674D005564CB /* Project object */;
}

View File

@ -0,0 +1,17 @@
//
// AdPlugContainer.h
// AdPlug
//
// Created by Christopher Snowhill on 1/27/18.
// Copyright 2018 __LoSnoCo__. All rights reserved.
//
#import <Cocoa/Cocoa.h>
#import "Plugin.h"
@interface AdPlugContainer : NSObject <CogContainer> {
}
@end

View File

@ -0,0 +1,79 @@
//
// AdPlugContainer.m
// AdPlug
//
// Created by Christopher Snowhill on 1/27/18.
// Copyright 2018 __LoSnoCo__. All rights reserved.
//
#import <AdPlug/adplug.h>
#import <AdPlug/silentopl.h>
#import "AdPlugContainer.h"
#import "AdPlugDecoder.h"
#import "Logging.h"
#import "fileprovider.h"
@implementation AdPlugContainer
+ (NSArray *)fileTypes
{
return [AdPlugDecoder fileTypes];
}
+ (NSArray *)mimeTypes
{
return nil;
}
+ (float)priority
{
return [AdPlugDecoder priority];
}
+ (NSArray *)urlsForContainerURL:(NSURL *)url
{
if ([url fragment]) {
// input url already has fragment defined - no need to expand further
return [NSMutableArray arrayWithObject:url];
}
id audioSourceClass = NSClassFromString(@"AudioSource");
id<CogSource> source = [audioSourceClass audioSourceForURL:url];
if (![source open:url])
return 0;
if (![source seekable])
return 0;
Copl * p_emu = new CSilentopl;
std::string path = [[[url absoluteString] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding] UTF8String];
CPlayer * p_player = CAdPlug::factory(path, p_emu, CAdPlug::players, CProvider_cog( path, source ));
if ( !p_player )
{
delete p_emu;
return 0;
}
NSMutableArray *tracks = [NSMutableArray array];
unsigned int i;
unsigned int subsongs = p_player->getsubsongs();
delete p_player;
delete p_emu;
for (i = 0; i < subsongs; ++i) {
[tracks addObject:[NSURL URLWithString:[[url absoluteString] stringByAppendingFormat:@"#%i", i]]];
}
return tracks;
}
@end

View File

@ -0,0 +1,30 @@
//
// AdPlugDecoder.h
// AdPlug
//
// Created by Christopher Snowhill on 1/27/18.
// Copyright 2018 __LoSnoCo__. All rights reserved.
//
#import <Cocoa/Cocoa.h>
#import <AdPlug/adplug.h>
#import <AdPlug/opl.h>
#import "Plugin.h"
@interface AdPlugDecoder : NSObject <CogDecoder> {
CPlayer * m_player;
Copl * m_emu;
unsigned int subsong, samples_todo;
id<CogSource> source;
unsigned long current_pos;
unsigned long length;
}
- (void)setSource:(id<CogSource>)s;
- (id<CogSource>)source;
- (void)cleanUp;
@end

View File

@ -0,0 +1,184 @@
//
// AdPlugDecoder.m
// AdPlug
//
// Created by Christopher Snowhill on 1/27/18.
// Copyright 2018 __LoSnoCo__. All rights reserved.
//
#import "AdPlugDecoder.h"
#import <AdPlug/nemuopl.h>
#import "fileprovider.h"
#import "Logging.h"
#import "PlaylistController.h"
@implementation AdPlugDecoder
- (id)init
{
self = [super init];
if (self) {
m_player = NULL;
m_emu = NULL;
}
return self;
}
- (BOOL)open:(id<CogSource>)s
{
[self setSource:s];
m_emu = new CNemuopl(44100);
std::string path = [[[[source url] absoluteString] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding] UTF8String];
m_player = CAdPlug::factory(path, m_emu, CAdPlug::players, CProvider_cog( path, source ));
if ( !m_player )
return 0;
if ([[source.url fragment] length] == 0)
subsong = 0;
else
subsong = [[source.url fragment] intValue];
samples_todo = 0;
length = m_player->songlength(subsong) * 441 / 10;
current_pos = 0;
m_player->rewind(subsong);
[self willChangeValueForKey:@"properties"];
[self didChangeValueForKey:@"properties"];
return YES;
}
- (NSDictionary *)properties
{
return [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithInt:0], @"bitrate",
[NSNumber numberWithFloat:44100], @"sampleRate",
[NSNumber numberWithDouble:length], @"totalFrames",
[NSNumber numberWithInt:16], @"bitsPerSample", //Samples are short
[NSNumber numberWithBool:NO], @"floatingPoint",
[NSNumber numberWithInt:2], @"channels", //output from gme_play is in stereo
[NSNumber numberWithBool:YES], @"seekable",
@"host", @"endian",
nil];
}
- (int)readAudio:(void *)buf frames:(UInt32)frames
{
int total = 0;
bool dont_loop = !IsRepeatOneSet();
if ( dont_loop && current_pos + frames > length )
frames = (UInt32) (length - current_pos);
while ( total < frames )
{
bool running = true;
if ( !samples_todo )
{
running = m_player->update() && running;
if ( !dont_loop || running )
{
samples_todo = 44100 / m_player->getrefresh();
current_pos += samples_todo;
}
}
if ( !samples_todo )
break;
int samples_now = samples_todo;
if ( samples_now > (frames - total) )
samples_now = frames - total;
m_emu->update( (short*)buf, samples_now );
buf = ((short *)buf) + samples_now * 2;
samples_todo -= samples_now;
total += samples_now;
}
return total;
}
- (long)seek:(long)frame
{
if ( frame < current_pos )
{
current_pos = 0;
m_player->rewind( subsong );
}
while ( current_pos < frame )
{
m_player->update();
current_pos += 44100 / m_player->getrefresh();
}
samples_todo = (UInt32) (frame - current_pos);
return frame;
}
- (void)cleanUp
{
delete m_player; m_player = NULL;
delete m_emu; m_emu = NULL;
}
- (void)close
{
[self cleanUp];
if (source) {
[source close];
[self setSource:nil];
}
}
- (void)dealloc
{
[self close];
}
- (void)setSource:(id<CogSource>)s
{
source = s;
}
- (id<CogSource>)source
{
return source;
}
+ (NSArray *)fileTypes
{
const CPlayers & pl = CAdPlug::players;
CPlayers::const_iterator i;
unsigned j;
NSMutableArray * array = [NSMutableArray array];
for (i = pl.begin(); i != pl.end(); ++i) {
for ( j = 0; ( *i )->get_extension(j); ++j )
{
[array addObject:[NSString stringWithUTF8String:(*i)->get_extension(j) + 1]];
}
}
return array;
}
+ (NSArray *)mimeTypes
{
return nil;
}
+ (float)priority
{
return 0.5;
}
@end

View File

@ -0,0 +1,17 @@
//
// AdPlugMetadataReader.h
// AdPlug
//
// Created by Christopher Snowhill on 1/27/18.
// Copyright 2018 __LoSnoCo__. All rights reserved.
//
#import <Cocoa/Cocoa.h>
#import "Plugin.h"
@interface AdPlugMetadataReader : NSObject <CogMetadataReader> {
}
@end

View File

@ -0,0 +1,72 @@
//
// AdPlugMetadataReader.m
// AdPlug
//
// Created by Christopher Snowhill on 1/27/18.
// Copyright 2018 __LoSnoCo__. All rights reserved.
//
#import "AdPlugMetadataReader.h"
#import "AdPlugDecoder.h"
#import <AdPlug/adplug.h>
#import <AdPlug/silentopl.h>
#import "fileprovider.h"
#import "Logging.H"
@implementation AdPlugMetadataReader
+ (NSArray *)fileTypes
{
return [AdPlugDecoder fileTypes];
}
+ (NSArray *)mimeTypes
{
return [AdPlugDecoder mimeTypes];
}
+ (float)priority
{
return [AdPlugDecoder priority];
}
+ (NSDictionary *)metadataForURL:(NSURL *)url
{
id audioSourceClass = NSClassFromString(@"AudioSource");
id<CogSource> source = [audioSourceClass audioSourceForURL:url];
if (![source open:url])
return 0;
if (![source seekable])
return 0;
Copl * p_emu = new CSilentopl;
std::string path = [[[url absoluteString] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding] UTF8String];
CPlayer * p_player = CAdPlug::factory(path, p_emu, CAdPlug::players, CProvider_cog( path, source ));
if ( !p_player )
{
delete p_emu;
return 0;
}
NSString * title = @"";
NSString * artist = @"";
if ( !p_player->gettitle().empty() )
title = [NSString stringWithUTF8String: p_player->gettitle().c_str()];
if ( !p_player->getauthor().empty() )
artist = [NSString stringWithUTF8String: p_player->getauthor().c_str()];
delete p_player;
delete p_emu;
return [NSDictionary dictionaryWithObjectsAndKeys:title, @"title", artist, @"artist", nil];
}
@end

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright © 2018 Christopher Snowhill. All rights reserved.</string>
<key>NSPrincipalClass</key>
<string></string>
</dict>
</plist>

View File

@ -0,0 +1,35 @@
//
// fileprovider.h
// AdPlug
//
// Created by Christopher Snowhill on 1/27/18.
// Copyright © 2018 Christopher Snowhill. All rights reserved.
//
#ifndef fileprovider_h
#define fileprovider_h
#import <Cocoa/Cocoa.h>
#import "Plugin.h"
#include <string>
#include <binio.h>
#include <AdPlug/fprovide.h>
class CProvider_cog : public CFileProvider
{
id<CogSource> m_file_hint;
std::string m_file_path;
public:
virtual binistream *open(std::string filename) const;
virtual void close(binistream *f) const;
CProvider_cog() { }
CProvider_cog(std::string filename, id<CogSource> file)
: m_file_path( filename ), m_file_hint(file) { }
};
#endif /* fileprovider_h */

View File

@ -0,0 +1,118 @@
//
// fileprovider.cpp
// AdPlug
//
// Created by Christopher Snowhill on 1/27/18.
// Copyright © 2018 Christopher Snowhill. All rights reserved.
//
#include "fileprovider.h"
class binistream_cog : public binistream
{
id<CogSource> m_file;
Byte m_buffer[4096];
int m_buffer_filled, m_buffer_position;
public:
binistream_cog( id<CogSource> p_file )
: m_file( p_file ), m_buffer_filled( 0 ), m_buffer_position( 0 ) { }
void seek( long pos, Offset offs )
{
switch (offs)
{
case Set: break;
case Add:
if ( ( pos < 0 && m_buffer_position + pos >= 0 ) ||
( pos >= 0 && m_buffer_position + pos < m_buffer_filled + m_buffer_position ) )
{
m_buffer_filled -= pos;
m_buffer_position += pos;
err &= ~Eof;
return;
}
else
pos += [m_file tell] - m_buffer_filled;
break;
case End:
[m_file seek:0 whence:SEEK_END];
pos += [m_file tell];
break;
}
[m_file seek:0 whence:SEEK_END];
if (pos < [m_file tell])
{
err &= ~Eof;
[m_file seek:pos whence:SEEK_SET];
}
m_buffer_filled = 0;
m_buffer_position = 0;
}
long pos()
{
return [m_file tell] - m_buffer_filled;
}
Byte getByte()
{
if ( err & Eof ) return -1;
if ( ! m_buffer_filled )
{
m_buffer_filled = [m_file read:m_buffer amount:4096];
if ( ! m_buffer_filled )
{
err |= Eof;
return -1;
}
m_buffer_position = 0;
}
Byte value = m_buffer[ m_buffer_position ];
++m_buffer_position;
--m_buffer_filled;
return value;
}
};
binistream * CProvider_cog::open(std::string filename) const
{
id<CogSource> p_file;
if ( filename == m_file_path )
{
p_file = m_file_hint;
[p_file seek:0 whence:SEEK_SET];
}
if ( p_file == nil )
{
NSString * urlString = [NSString stringWithUTF8String:filename.c_str()];
NSURL * url = [NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
id audioSourceClass = NSClassFromString(@"AudioSource");
p_file = [audioSourceClass audioSourceForURL:url];
if (![p_file open:url])
return 0;
}
binistream_cog * f = new binistream_cog( p_file );
if ( f->error() ) { delete f; return 0; }
f->setFlag(binio::BigEndian, false); f->setFlag(binio::FloatIEEE);
return f;
}
void CProvider_cog::close(binistream *f) const
{
binistream_cog * ff = ( binistream_cog * ) f;
if ( f )
delete ff;
}