Fixed Cuesheet bug so it doesn't load itself.
Added APL support (Vasfed).CQTexperiment
parent
7bee3acc79
commit
d6c6dea8a6
|
@ -0,0 +1,285 @@
|
||||||
|
// !$*UTF8*$!
|
||||||
|
{
|
||||||
|
archiveVersion = 1;
|
||||||
|
classes = {
|
||||||
|
};
|
||||||
|
objectVersion = 42;
|
||||||
|
objects = {
|
||||||
|
|
||||||
|
/* Begin PBXBuildFile section */
|
||||||
|
99B98A1E0CC7E1CA00C256E9 /* ApeTag.mm in Sources */ = {isa = PBXBuildFile; fileRef = 99B9865F0CC7A20800C256E9 /* ApeTag.mm */; };
|
||||||
|
99B98A1F0CC7E1CD00C256E9 /* APLDecoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E8D42360CBB0F9800135C1B /* APLDecoder.m */; };
|
||||||
|
99B98A200CC7E1CE00C256E9 /* APLFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 99B9863F0CC7A08600C256E9 /* APLFile.m */; };
|
||||||
|
99B98A210CC7E1D100C256E9 /* APLMetadataReader.m in Sources */ = {isa = PBXBuildFile; fileRef = 17DA346D0CC04FCD0003F6B2 /* APLMetadataReader.m */; };
|
||||||
|
99B98A260CC7E22500C256E9 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */; };
|
||||||
|
99B98CE10CC7FD0000C256E9 /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8D5B49B7048680CD000E48DA /* Info.plist */; };
|
||||||
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
|
/* Begin PBXFileReference section */
|
||||||
|
089C1672FE841209C02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
|
||||||
|
089C167FFE841241C02AAC07 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
|
||||||
|
1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
|
||||||
|
17DA346C0CC04FCD0003F6B2 /* APLMetadataReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APLMetadataReader.h; sourceTree = "<group>"; };
|
||||||
|
17DA346D0CC04FCD0003F6B2 /* APLMetadataReader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APLMetadataReader.m; sourceTree = "<group>"; };
|
||||||
|
32DBCF630370AF2F00C91783 /* APL_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APL_Prefix.pch; sourceTree = "<group>"; };
|
||||||
|
8D5B49B7048680CD000E48DA /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||||
|
8E8D42350CBB0F9800135C1B /* APLDecoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APLDecoder.h; sourceTree = "<group>"; };
|
||||||
|
8E8D42360CBB0F9800135C1B /* APLDecoder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APLDecoder.m; sourceTree = "<group>"; };
|
||||||
|
8E8D423C0CBB0FF600135C1B /* Plugin.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = Plugin.h; path = ../../Audio/Plugin.h; sourceTree = SOURCE_ROOT; };
|
||||||
|
99B9863E0CC7A08600C256E9 /* APLFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APLFile.h; sourceTree = "<group>"; };
|
||||||
|
99B9863F0CC7A08600C256E9 /* APLFile.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APLFile.m; sourceTree = "<group>"; };
|
||||||
|
99B9865E0CC7A20800C256E9 /* ApeTag.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ApeTag.h; sourceTree = "<group>"; };
|
||||||
|
99B9865F0CC7A20800C256E9 /* ApeTag.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ApeTag.mm; sourceTree = "<group>"; };
|
||||||
|
99B989F40CC7E10400C256E9 /* APL.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = APL.bundle; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
|
D2F7E65807B2D6F200F64583 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = "<absolute>"; };
|
||||||
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
|
/* Begin PBXFrameworksBuildPhase section */
|
||||||
|
99B989F20CC7E10400C256E9 /* Frameworks */ = {
|
||||||
|
isa = PBXFrameworksBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
99B98A260CC7E22500C256E9 /* Cocoa.framework in Frameworks */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
/* End PBXFrameworksBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin PBXGroup section */
|
||||||
|
089C166AFE841209C02AAC07 /* CueSheet */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
08FB77AFFE84173DC02AAC07 /* Classes */,
|
||||||
|
32C88E010371C26100C91783 /* Other Sources */,
|
||||||
|
089C167CFE841241C02AAC07 /* Resources */,
|
||||||
|
089C1671FE841209C02AAC07 /* Frameworks and Libraries */,
|
||||||
|
19C28FB8FE9D52D311CA2CBB /* Products */,
|
||||||
|
);
|
||||||
|
name = CueSheet;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
089C1671FE841209C02AAC07 /* Frameworks and Libraries */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
1058C7ACFEA557BF11CA2CBB /* Linked Frameworks */,
|
||||||
|
1058C7AEFEA557BF11CA2CBB /* Other Frameworks */,
|
||||||
|
);
|
||||||
|
name = "Frameworks and Libraries";
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
089C167CFE841241C02AAC07 /* Resources */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
8D5B49B7048680CD000E48DA /* Info.plist */,
|
||||||
|
);
|
||||||
|
name = Resources;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
08FB77AFFE84173DC02AAC07 /* Classes */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
8E8D423C0CBB0FF600135C1B /* Plugin.h */,
|
||||||
|
8E8D42350CBB0F9800135C1B /* APLDecoder.h */,
|
||||||
|
8E8D42360CBB0F9800135C1B /* APLDecoder.m */,
|
||||||
|
17DA346C0CC04FCD0003F6B2 /* APLMetadataReader.h */,
|
||||||
|
17DA346D0CC04FCD0003F6B2 /* APLMetadataReader.m */,
|
||||||
|
99B9863E0CC7A08600C256E9 /* APLFile.h */,
|
||||||
|
99B9863F0CC7A08600C256E9 /* APLFile.m */,
|
||||||
|
99B9865E0CC7A20800C256E9 /* ApeTag.h */,
|
||||||
|
99B9865F0CC7A20800C256E9 /* ApeTag.mm */,
|
||||||
|
);
|
||||||
|
name = Classes;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
1058C7ACFEA557BF11CA2CBB /* Linked Frameworks */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */,
|
||||||
|
);
|
||||||
|
name = "Linked Frameworks";
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
1058C7AEFEA557BF11CA2CBB /* Other Frameworks */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
089C167FFE841241C02AAC07 /* AppKit.framework */,
|
||||||
|
D2F7E65807B2D6F200F64583 /* CoreData.framework */,
|
||||||
|
089C1672FE841209C02AAC07 /* Foundation.framework */,
|
||||||
|
);
|
||||||
|
name = "Other Frameworks";
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
19C28FB8FE9D52D311CA2CBB /* Products */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
99B989F40CC7E10400C256E9 /* APL.bundle */,
|
||||||
|
);
|
||||||
|
name = Products;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
32C88E010371C26100C91783 /* Other Sources */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
32DBCF630370AF2F00C91783 /* APL_Prefix.pch */,
|
||||||
|
);
|
||||||
|
name = "Other Sources";
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
/* End PBXGroup section */
|
||||||
|
|
||||||
|
/* Begin PBXNativeTarget section */
|
||||||
|
99B989F30CC7E10400C256E9 /* APL Plugin */ = {
|
||||||
|
isa = PBXNativeTarget;
|
||||||
|
buildConfigurationList = 99B989F70CC7E10500C256E9 /* Build configuration list for PBXNativeTarget "APL Plugin" */;
|
||||||
|
buildPhases = (
|
||||||
|
99B989F00CC7E10400C256E9 /* Resources */,
|
||||||
|
99B989F10CC7E10400C256E9 /* Sources */,
|
||||||
|
99B989F20CC7E10400C256E9 /* Frameworks */,
|
||||||
|
);
|
||||||
|
buildRules = (
|
||||||
|
);
|
||||||
|
dependencies = (
|
||||||
|
);
|
||||||
|
name = "APL Plugin";
|
||||||
|
productName = APL;
|
||||||
|
productReference = 99B989F40CC7E10400C256E9 /* APL.bundle */;
|
||||||
|
productType = "com.apple.product-type.bundle";
|
||||||
|
};
|
||||||
|
/* End PBXNativeTarget section */
|
||||||
|
|
||||||
|
/* Begin PBXProject section */
|
||||||
|
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||||
|
isa = PBXProject;
|
||||||
|
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "APL" */;
|
||||||
|
hasScannedForEncodings = 1;
|
||||||
|
mainGroup = 089C166AFE841209C02AAC07 /* CueSheet */;
|
||||||
|
projectDirPath = "";
|
||||||
|
targets = (
|
||||||
|
99B989F30CC7E10400C256E9 /* APL Plugin */,
|
||||||
|
);
|
||||||
|
};
|
||||||
|
/* End PBXProject section */
|
||||||
|
|
||||||
|
/* Begin PBXResourcesBuildPhase section */
|
||||||
|
99B989F00CC7E10400C256E9 /* Resources */ = {
|
||||||
|
isa = PBXResourcesBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
99B98CE10CC7FD0000C256E9 /* Info.plist in Resources */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
/* End PBXResourcesBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin PBXSourcesBuildPhase section */
|
||||||
|
99B989F10CC7E10400C256E9 /* Sources */ = {
|
||||||
|
isa = PBXSourcesBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
99B98A1E0CC7E1CA00C256E9 /* ApeTag.mm in Sources */,
|
||||||
|
99B98A1F0CC7E1CD00C256E9 /* APLDecoder.m in Sources */,
|
||||||
|
99B98A200CC7E1CE00C256E9 /* APLFile.m in Sources */,
|
||||||
|
99B98A210CC7E1D100C256E9 /* APLMetadataReader.m in Sources */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
/* End PBXSourcesBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin XCBuildConfiguration section */
|
||||||
|
1DEB913F08733D840010E9CD /* Debug */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||||
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
|
PREBINDING = NO;
|
||||||
|
SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
|
||||||
|
SYMROOT = ../../build;
|
||||||
|
};
|
||||||
|
name = Debug;
|
||||||
|
};
|
||||||
|
1DEB914008733D840010E9CD /* Release */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||||
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
|
PREBINDING = NO;
|
||||||
|
SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
|
||||||
|
SYMROOT = ../../build;
|
||||||
|
};
|
||||||
|
name = Release;
|
||||||
|
};
|
||||||
|
99B989F80CC7E10500C256E9 /* Debug */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
COPY_PHASE_STRIP = NO;
|
||||||
|
GCC_DYNAMIC_NO_PIC = NO;
|
||||||
|
GCC_ENABLE_FIX_AND_CONTINUE = YES;
|
||||||
|
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
|
||||||
|
GCC_MODEL_TUNING = G5;
|
||||||
|
GCC_OPTIMIZATION_LEVEL = 0;
|
||||||
|
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||||
|
GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h";
|
||||||
|
INFOPLIST_FILE = Info.plist;
|
||||||
|
INSTALL_PATH = "$(HOME)/Library/Bundles";
|
||||||
|
OTHER_LDFLAGS = (
|
||||||
|
"-framework",
|
||||||
|
Foundation,
|
||||||
|
"-framework",
|
||||||
|
AppKit,
|
||||||
|
);
|
||||||
|
PREBINDING = NO;
|
||||||
|
PRODUCT_NAME = APL;
|
||||||
|
WRAPPER_EXTENSION = bundle;
|
||||||
|
ZERO_LINK = YES;
|
||||||
|
};
|
||||||
|
name = Debug;
|
||||||
|
};
|
||||||
|
99B989F90CC7E10500C256E9 /* Release */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
COPY_PHASE_STRIP = YES;
|
||||||
|
GCC_ENABLE_FIX_AND_CONTINUE = NO;
|
||||||
|
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
||||||
|
GCC_MODEL_TUNING = G5;
|
||||||
|
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||||
|
GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h";
|
||||||
|
INFOPLIST_FILE = Info.plist;
|
||||||
|
INSTALL_PATH = "$(HOME)/Library/Bundles";
|
||||||
|
OTHER_LDFLAGS = (
|
||||||
|
"-framework",
|
||||||
|
Foundation,
|
||||||
|
"-framework",
|
||||||
|
AppKit,
|
||||||
|
);
|
||||||
|
PREBINDING = NO;
|
||||||
|
PRODUCT_NAME = APL;
|
||||||
|
WRAPPER_EXTENSION = bundle;
|
||||||
|
ZERO_LINK = NO;
|
||||||
|
};
|
||||||
|
name = Release;
|
||||||
|
};
|
||||||
|
/* End XCBuildConfiguration section */
|
||||||
|
|
||||||
|
/* Begin XCConfigurationList section */
|
||||||
|
1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "APL" */ = {
|
||||||
|
isa = XCConfigurationList;
|
||||||
|
buildConfigurations = (
|
||||||
|
1DEB913F08733D840010E9CD /* Debug */,
|
||||||
|
1DEB914008733D840010E9CD /* Release */,
|
||||||
|
);
|
||||||
|
defaultConfigurationIsVisible = 0;
|
||||||
|
defaultConfigurationName = Release;
|
||||||
|
};
|
||||||
|
99B989F70CC7E10500C256E9 /* Build configuration list for PBXNativeTarget "APL Plugin" */ = {
|
||||||
|
isa = XCConfigurationList;
|
||||||
|
buildConfigurations = (
|
||||||
|
99B989F80CC7E10500C256E9 /* Debug */,
|
||||||
|
99B989F90CC7E10500C256E9 /* Release */,
|
||||||
|
);
|
||||||
|
defaultConfigurationIsVisible = 0;
|
||||||
|
defaultConfigurationName = Release;
|
||||||
|
};
|
||||||
|
/* End XCConfigurationList section */
|
||||||
|
};
|
||||||
|
rootObject = 089C1669FE841209C02AAC07 /* Project object */;
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,694 @@
|
||||||
|
// !$*UTF8*$!
|
||||||
|
{
|
||||||
|
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||||
|
activeBuildConfigurationName = Release;
|
||||||
|
activeExecutable = 99B989D30CC7DEF800C256E9 /* Executable */;
|
||||||
|
activeTarget = 99B989F30CC7E10400C256E9 /* APL */;
|
||||||
|
addToTargets = (
|
||||||
|
);
|
||||||
|
breakpoints = (
|
||||||
|
99B98C910CC7F74600C256E9 /* ApeTag.mm:151 */,
|
||||||
|
99B98C950CC7F75900C256E9 /* ApeTag.mm:146 */,
|
||||||
|
99B98CA30CC7F7C000C256E9 /* ApeTag.mm:236 */,
|
||||||
|
99B98CB00CC7F8A700C256E9 /* APLMetadataReader.m:21 */,
|
||||||
|
99B98CC20CC7F96900C256E9 /* APLFile.m:121 */,
|
||||||
|
);
|
||||||
|
breakpointsGroup = 99B986E60CC7B5AC00C256E9 /* XCBreakpointsBucket */;
|
||||||
|
codeSenseManager = 99B985FC0CC79D3500C256E9 /* Code sense */;
|
||||||
|
executables = (
|
||||||
|
99B989D30CC7DEF800C256E9 /* Executable */,
|
||||||
|
);
|
||||||
|
perUserDictionary = {
|
||||||
|
PBXConfiguration.PBXFileTableDataSource3.PBXExecutablesDataSource = {
|
||||||
|
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||||
|
PBXFileTableDataSourceColumnSortingKey = PBXExecutablesDataSource_NameID;
|
||||||
|
PBXFileTableDataSourceColumnWidthsKey = (
|
||||||
|
22,
|
||||||
|
300,
|
||||||
|
400,
|
||||||
|
);
|
||||||
|
PBXFileTableDataSourceColumnsKey = (
|
||||||
|
PBXExecutablesDataSource_ActiveFlagID,
|
||||||
|
PBXExecutablesDataSource_NameID,
|
||||||
|
PBXExecutablesDataSource_CommentsID,
|
||||||
|
);
|
||||||
|
};
|
||||||
|
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
|
||||||
|
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||||
|
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||||
|
PBXFileTableDataSourceColumnWidthsKey = (
|
||||||
|
20,
|
||||||
|
850,
|
||||||
|
20,
|
||||||
|
48,
|
||||||
|
43,
|
||||||
|
43,
|
||||||
|
20,
|
||||||
|
);
|
||||||
|
PBXFileTableDataSourceColumnsKey = (
|
||||||
|
PBXFileDataSource_FiletypeID,
|
||||||
|
PBXFileDataSource_Filename_ColumnID,
|
||||||
|
PBXFileDataSource_Built_ColumnID,
|
||||||
|
PBXFileDataSource_ObjectSize_ColumnID,
|
||||||
|
PBXFileDataSource_Errors_ColumnID,
|
||||||
|
PBXFileDataSource_Warnings_ColumnID,
|
||||||
|
PBXFileDataSource_Target_ColumnID,
|
||||||
|
);
|
||||||
|
};
|
||||||
|
PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
|
||||||
|
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||||
|
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||||
|
PBXFileTableDataSourceColumnWidthsKey = (
|
||||||
|
20,
|
||||||
|
200,
|
||||||
|
670,
|
||||||
|
20,
|
||||||
|
48,
|
||||||
|
43,
|
||||||
|
43,
|
||||||
|
);
|
||||||
|
PBXFileTableDataSourceColumnsKey = (
|
||||||
|
PBXFileDataSource_FiletypeID,
|
||||||
|
PBXFileDataSource_Filename_ColumnID,
|
||||||
|
PBXTargetDataSource_PrimaryAttribute,
|
||||||
|
PBXFileDataSource_Built_ColumnID,
|
||||||
|
PBXFileDataSource_ObjectSize_ColumnID,
|
||||||
|
PBXFileDataSource_Errors_ColumnID,
|
||||||
|
PBXFileDataSource_Warnings_ColumnID,
|
||||||
|
);
|
||||||
|
};
|
||||||
|
PBXPerProjectTemplateStateSaveDate = 214436110;
|
||||||
|
PBXWorkspaceStateSaveDate = 214436110;
|
||||||
|
};
|
||||||
|
perUserProjectItems = {
|
||||||
|
99B9860D0CC79E9F00C256E9 /* PBXTextBookmark */ = 99B9860D0CC79E9F00C256E9 /* PBXTextBookmark */;
|
||||||
|
99B9860E0CC79E9F00C256E9 /* PBXTextBookmark */ = 99B9860E0CC79E9F00C256E9 /* PBXTextBookmark */;
|
||||||
|
99B986110CC79E9F00C256E9 /* PBXTextBookmark */ = 99B986110CC79E9F00C256E9 /* PBXTextBookmark */;
|
||||||
|
99B986120CC79E9F00C256E9 /* PBXTextBookmark */ = 99B986120CC79E9F00C256E9 /* PBXTextBookmark */;
|
||||||
|
99B986F00CC7B63400C256E9 /* PBXTextBookmark */ = 99B986F00CC7B63400C256E9 /* PBXTextBookmark */;
|
||||||
|
99B986F10CC7B63400C256E9 /* PBXTextBookmark */ = 99B986F10CC7B63400C256E9 /* PBXTextBookmark */;
|
||||||
|
99B987080CC7B63400C256E9 /* PBXTextBookmark */ = 99B987080CC7B63400C256E9 /* PBXTextBookmark */;
|
||||||
|
99B9870B0CC7B63400C256E9 /* PBXTextBookmark */ = 99B9870B0CC7B63400C256E9 /* PBXTextBookmark */;
|
||||||
|
99B9870C0CC7B63400C256E9 /* PBXTextBookmark */ = 99B9870C0CC7B63400C256E9 /* PBXTextBookmark */;
|
||||||
|
99B9870F0CC7B63400C256E9 /* PBXTextBookmark */ = 99B9870F0CC7B63400C256E9 /* PBXTextBookmark */;
|
||||||
|
99B987280CC7B63400C256E9 /* PBXTextBookmark */ = 99B987280CC7B63400C256E9 /* PBXTextBookmark */;
|
||||||
|
99B987290CC7B63400C256E9 /* PBXTextBookmark */ = 99B987290CC7B63400C256E9 /* PBXTextBookmark */;
|
||||||
|
99B987360CC7B63400C256E9 /* PBXTextBookmark */ = 99B987360CC7B63400C256E9 /* PBXTextBookmark */;
|
||||||
|
99B987970CC7C17700C256E9 /* PBXTextBookmark */ = 99B987970CC7C17700C256E9 /* PBXTextBookmark */;
|
||||||
|
99B987B70CC7C17700C256E9 /* PBXTextBookmark */ = 99B987B70CC7C17700C256E9 /* PBXTextBookmark */;
|
||||||
|
99B987B80CC7C17700C256E9 /* PBXTextBookmark */ = 99B987B80CC7C17700C256E9 /* PBXTextBookmark */;
|
||||||
|
99B9899A0CC7DDBA00C256E9 /* PBXTextBookmark */ = 99B9899A0CC7DDBA00C256E9 /* PBXTextBookmark */;
|
||||||
|
99B98A350CC7E23F00C256E9 /* PBXTextBookmark */ = 99B98A350CC7E23F00C256E9 /* PBXTextBookmark */;
|
||||||
|
99B98A770CC7E66D00C256E9 /* PBXTextBookmark */ = 99B98A770CC7E66D00C256E9 /* PBXTextBookmark */;
|
||||||
|
99B98B350CC7F55800C256E9 /* PBXTextBookmark */ = 99B98B350CC7F55800C256E9 /* PBXTextBookmark */;
|
||||||
|
99B98CB30CC7F8B700C256E9 /* PBXTextBookmark */ = 99B98CB30CC7F8B700C256E9 /* PBXTextBookmark */;
|
||||||
|
99B98CB50CC7F8B700C256E9 /* PBXTextBookmark */ = 99B98CB50CC7F8B700C256E9 /* PBXTextBookmark */;
|
||||||
|
99B98CC70CC7F99E00C256E9 /* PBXTextBookmark */ = 99B98CC70CC7F99E00C256E9 /* PBXTextBookmark */;
|
||||||
|
99B98CE90CC7FD4200C256E9 /* PBXTextBookmark */ = 99B98CE90CC7FD4200C256E9 /* PBXTextBookmark */;
|
||||||
|
99B98CEA0CC7FD4200C256E9 /* PBXTextBookmark */ = 99B98CEA0CC7FD4200C256E9 /* PBXTextBookmark */;
|
||||||
|
99B98CEB0CC7FD4200C256E9 /* PBXTextBookmark */ = 99B98CEB0CC7FD4200C256E9 /* PBXTextBookmark */;
|
||||||
|
99B98CF40CC7FD7D00C256E9 /* PBXTextBookmark */ = 99B98CF40CC7FD7D00C256E9 /* PBXTextBookmark */;
|
||||||
|
99DF138F0CC7FEA600EC5F3E /* PBXTextBookmark */ = 99DF138F0CC7FEA600EC5F3E /* PBXTextBookmark */;
|
||||||
|
99DF13A00CC7FF0600EC5F3E /* PBXTextBookmark */ = 99DF13A00CC7FF0600EC5F3E /* PBXTextBookmark */;
|
||||||
|
99DF14AC0CC8013600EC5F3E /* PBXTextBookmark */ = 99DF14AC0CC8013600EC5F3E /* PBXTextBookmark */;
|
||||||
|
};
|
||||||
|
sourceControlManager = 99B985FB0CC79D3500C256E9 /* Source Control */;
|
||||||
|
userBuildSettings = {
|
||||||
|
};
|
||||||
|
};
|
||||||
|
089C167EFE841241C02AAC07 /* English */ = {
|
||||||
|
uiCtxt = {
|
||||||
|
sepNavIntBoundsRect = "{{0, 0}, {1048, 517}}";
|
||||||
|
sepNavSelRange = "{0, 0}";
|
||||||
|
sepNavVisRect = "{{0, 0}, {1048, 517}}";
|
||||||
|
sepNavWindowFrame = "{{268, 267}, {1071, 675}}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
17DA346C0CC04FCD0003F6B2 /* APLMetadataReader.h */ = {
|
||||||
|
uiCtxt = {
|
||||||
|
sepNavIntBoundsRect = "{{0, 0}, {1101, 517}}";
|
||||||
|
sepNavSelRange = "{0, 0}";
|
||||||
|
sepNavVisRect = "{{0, 0}, {1101, 517}}";
|
||||||
|
sepNavWindowFrame = "{{176, 351}, {1071, 675}}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
17DA346D0CC04FCD0003F6B2 /* APLMetadataReader.m */ = {
|
||||||
|
uiCtxt = {
|
||||||
|
sepNavIntBoundsRect = "{{0, 0}, {1235, 445}}";
|
||||||
|
sepNavSelRange = "{438, 0}";
|
||||||
|
sepNavVisRect = "{{0, 0}, {1235, 445}}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
32DBCF630370AF2F00C91783 /* APL_Prefix.pch */ = {
|
||||||
|
uiCtxt = {
|
||||||
|
sepNavIntBoundsRect = "{{0, 0}, {1048, 517}}";
|
||||||
|
sepNavSelRange = "{0, 0}";
|
||||||
|
sepNavVisRect = "{{0, 0}, {1048, 517}}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
8D5B49B7048680CD000E48DA /* Info.plist */ = {
|
||||||
|
uiCtxt = {
|
||||||
|
sepNavIntBoundsRect = "{{0, 0}, {1048, 517}}";
|
||||||
|
sepNavSelRange = "{0, 0}";
|
||||||
|
sepNavVisRect = "{{0, 0}, {1048, 517}}";
|
||||||
|
sepNavWindowFrame = "{{291, 246}, {1071, 675}}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
8E8D42170CBB0F3C00135C1B /* APLPlugin.h */ = {
|
||||||
|
uiCtxt = {
|
||||||
|
sepNavIntBoundsRect = "{{0, 0}, {1048, 752}}";
|
||||||
|
sepNavSelRange = "{10, 0}";
|
||||||
|
sepNavVisRect = "{{0, 0}, {1048, 752}}";
|
||||||
|
sepNavWindowFrame = "{{61, 456}, {1071, 675}}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
8E8D42180CBB0F3C00135C1B /* APLPlugin.m */ = {
|
||||||
|
uiCtxt = {
|
||||||
|
sepNavIntBoundsRect = "{{0, 0}, {1048, 752}}";
|
||||||
|
sepNavSelRange = "{249, 0}";
|
||||||
|
sepNavVisRect = "{{0, 0}, {1048, 752}}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
8E8D42350CBB0F9800135C1B /* APLDecoder.h */ = {
|
||||||
|
uiCtxt = {
|
||||||
|
sepNavIntBoundsRect = "{{0, 0}, {1101, 517}}";
|
||||||
|
sepNavSelRange = "{437, 0}";
|
||||||
|
sepNavVisRect = "{{0, 0}, {1101, 517}}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
8E8D42360CBB0F9800135C1B /* APLDecoder.m */ = {
|
||||||
|
uiCtxt = {
|
||||||
|
sepNavIntBoundsRect = "{{0, 0}, {1048, 2366}}";
|
||||||
|
sepNavSelRange = "{580, 9}";
|
||||||
|
sepNavVisRect = "{{0, 188}, {1048, 517}}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
8E8D423C0CBB0FF600135C1B /* Plugin.h */ = {
|
||||||
|
uiCtxt = {
|
||||||
|
sepNavIntBoundsRect = "{{0, 0}, {1048, 1064}}";
|
||||||
|
sepNavSelRange = "{857, 0}";
|
||||||
|
sepNavVisRect = "{{0, 512}, {1048, 517}}";
|
||||||
|
sepNavWindowFrame = "{{153, 372}, {1071, 675}}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
99B985FB0CC79D3500C256E9 /* Source Control */ = {
|
||||||
|
isa = PBXSourceControlManager;
|
||||||
|
fallbackIsa = XCSourceControlManager;
|
||||||
|
isSCMEnabled = 0;
|
||||||
|
scmConfiguration = {
|
||||||
|
};
|
||||||
|
scmType = "";
|
||||||
|
};
|
||||||
|
99B985FC0CC79D3500C256E9 /* Code sense */ = {
|
||||||
|
isa = PBXCodeSenseManager;
|
||||||
|
indexTemplatePath = "";
|
||||||
|
};
|
||||||
|
99B9860D0CC79E9F00C256E9 /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 8E8D42170CBB0F3C00135C1B /* APLPlugin.h */;
|
||||||
|
name = "CueSheetPlugin.h: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 121;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
99B9860E0CC79E9F00C256E9 /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 8E8D42180CBB0F3C00135C1B /* APLPlugin.m */;
|
||||||
|
name = "CueSheetPlugin.m: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 316;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
99B986110CC79E9F00C256E9 /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 8E8D42350CBB0F9800135C1B /* APLDecoder.h */;
|
||||||
|
name = "CueSheetDecoder.h: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 650;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
99B986120CC79E9F00C256E9 /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 8E8D42360CBB0F9800135C1B /* APLDecoder.m */;
|
||||||
|
name = "CueSheetDecoder.m: 15";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 219;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 809;
|
||||||
|
vrLoc = 758;
|
||||||
|
};
|
||||||
|
99B9863E0CC7A08600C256E9 /* APLFile.h */ = {
|
||||||
|
uiCtxt = {
|
||||||
|
sepNavIntBoundsRect = "{{0, 0}, {1048, 517}}";
|
||||||
|
sepNavSelRange = "{270, 0}";
|
||||||
|
sepNavVisRect = "{{0, 0}, {1048, 517}}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
99B9863F0CC7A08600C256E9 /* APLFile.m */ = {
|
||||||
|
uiCtxt = {
|
||||||
|
sepNavIntBoundsRect = "{{0, 0}, {1190, 1890}}";
|
||||||
|
sepNavSelRange = "{4298, 0}";
|
||||||
|
sepNavVisRect = "{{0, 1336}, {1048, 517}}";
|
||||||
|
sepNavWindowFrame = "{{524, 415}, {1071, 675}}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
99B9865E0CC7A20800C256E9 /* ApeTag.h */ = {
|
||||||
|
uiCtxt = {
|
||||||
|
sepNavIntBoundsRect = "{{0, 0}, {1048, 770}}";
|
||||||
|
sepNavSelRange = "{279, 0}";
|
||||||
|
sepNavVisRect = "{{0, 253}, {1048, 517}}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
99B9865F0CC7A20800C256E9 /* ApeTag.mm */ = {
|
||||||
|
uiCtxt = {
|
||||||
|
sepNavIntBoundsRect = "{{0, 0}, {1190, 3458}}";
|
||||||
|
sepNavSelRange = "{9505, 0}";
|
||||||
|
sepNavVisRect = "{{0, 2937}, {1048, 517}}";
|
||||||
|
sepNavWindowFrame = "{{139, 321}, {1071, 675}}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
99B986E60CC7B5AC00C256E9 /* XCBreakpointsBucket */ = {
|
||||||
|
isa = XCBreakpointsBucket;
|
||||||
|
name = "Project Breakpoints";
|
||||||
|
objects = (
|
||||||
|
99B98C910CC7F74600C256E9 /* ApeTag.mm:151 */,
|
||||||
|
99B98C950CC7F75900C256E9 /* ApeTag.mm:146 */,
|
||||||
|
99B98CA30CC7F7C000C256E9 /* ApeTag.mm:236 */,
|
||||||
|
99B98CB00CC7F8A700C256E9 /* APLMetadataReader.m:21 */,
|
||||||
|
99B98CC20CC7F96900C256E9 /* APLFile.m:121 */,
|
||||||
|
);
|
||||||
|
};
|
||||||
|
99B986EC0CC7B63400C256E9 /* APETag.h */ = {
|
||||||
|
isa = PBXFileReference;
|
||||||
|
lastKnownFileType = sourcecode.c.h;
|
||||||
|
name = APETag.h;
|
||||||
|
path = "/Users/vasfed/cog_src/cog_new/Frameworks/MAC/mac-src/src/MACLib/APETag.h";
|
||||||
|
sourceTree = "<absolute>";
|
||||||
|
};
|
||||||
|
99B986F00CC7B63400C256E9 /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 17DA346C0CC04FCD0003F6B2 /* APLMetadataReader.h */;
|
||||||
|
name = "APLMetadataReader.h: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 270;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
99B986F10CC7B63400C256E9 /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 8E8D42350CBB0F9800135C1B /* APLDecoder.h */;
|
||||||
|
name = "APLDecoder.h: trackEnd";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 437;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 537;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
99B987080CC7B63400C256E9 /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 99B9863E0CC7A08600C256E9 /* APLFile.h */;
|
||||||
|
name = "APLFile.h: 15";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 270;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 254;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
99B9870B0CC7B63400C256E9 /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 99B9865E0CC7A20800C256E9 /* ApeTag.h */;
|
||||||
|
name = "ApeTag.h: 11";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 251;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 228;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
99B9870C0CC7B63400C256E9 /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 99B9870D0CC7B63400C256E9 /* APETag.h */;
|
||||||
|
name = "(null): 89";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 4316;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 2481;
|
||||||
|
vrLoc = 3650;
|
||||||
|
};
|
||||||
|
99B9870D0CC7B63400C256E9 /* APETag.h */ = {
|
||||||
|
isa = PBXFileReference;
|
||||||
|
lastKnownFileType = sourcecode.c.h;
|
||||||
|
name = APETag.h;
|
||||||
|
path = "/Users/vasfed/cog_src/cog_new/Frameworks/MAC/mac-src/src/MACLib/APETag.h";
|
||||||
|
sourceTree = "<absolute>";
|
||||||
|
};
|
||||||
|
99B9870F0CC7B63400C256E9 /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 99B9865F0CC7A20800C256E9 /* ApeTag.mm */;
|
||||||
|
name = "ApeTag.mm: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 186;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
99B987280CC7B63400C256E9 /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 17DA346C0CC04FCD0003F6B2 /* APLMetadataReader.h */;
|
||||||
|
name = "APLMetadataReader.h: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 275;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
99B987290CC7B63400C256E9 /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 17DA346D0CC04FCD0003F6B2 /* APLMetadataReader.m */;
|
||||||
|
name = "APLMetadataReader.m: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 505;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
99B987360CC7B63400C256E9 /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 99B9863F0CC7A08600C256E9 /* APLFile.m */;
|
||||||
|
name = "APLFile.m: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 188;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
99B987970CC7C17700C256E9 /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 99B986EC0CC7B63400C256E9 /* APETag.h */;
|
||||||
|
name = "APETag.h: 89";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 4316;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 1679;
|
||||||
|
vrLoc = 3372;
|
||||||
|
};
|
||||||
|
99B987B70CC7C17700C256E9 /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 089C167EFE841241C02AAC07 /* English */;
|
||||||
|
name = "English: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 90;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
99B987B80CC7C17700C256E9 /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 8D5B49B7048680CD000E48DA /* Info.plist */;
|
||||||
|
name = "Info.plist: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 783;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
99B9899A0CC7DDBA00C256E9 /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 8E8D42170CBB0F3C00135C1B /* APLPlugin.h */;
|
||||||
|
name = "APLPlugin.h: 2";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 10;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 121;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
99B989D30CC7DEF800C256E9 /* Executable */ = {
|
||||||
|
isa = PBXExecutable;
|
||||||
|
activeArgIndex = 2147483647;
|
||||||
|
activeArgIndices = (
|
||||||
|
);
|
||||||
|
argumentStrings = (
|
||||||
|
);
|
||||||
|
autoAttachOnCrash = 1;
|
||||||
|
configStateDict = {
|
||||||
|
"PBXLSLaunchAction-0" = {
|
||||||
|
PBXLSLaunchAction = 0;
|
||||||
|
PBXLSLaunchStartAction = 1;
|
||||||
|
PBXLSLaunchStdioStyle = 2;
|
||||||
|
PBXLSLaunchStyle = 0;
|
||||||
|
class = PBXLSRunLaunchConfig;
|
||||||
|
displayName = "Executable Runner";
|
||||||
|
identifier = com.apple.Xcode.launch.runConfig;
|
||||||
|
remoteHostInfo = "";
|
||||||
|
startActionInfo = "";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
customDataFormattersEnabled = 1;
|
||||||
|
debuggerPlugin = GDBDebugging;
|
||||||
|
disassemblyDisplayState = 0;
|
||||||
|
dylibVariantSuffix = _debug;
|
||||||
|
enableDebugStr = 1;
|
||||||
|
environmentEntries = (
|
||||||
|
);
|
||||||
|
executableSystemSymbolLevel = 0;
|
||||||
|
executableUserSymbolLevel = 0;
|
||||||
|
launchableReference = 99B989D40CC7DEF800C256E9 /* Cog.app */;
|
||||||
|
libgmallocEnabled = 0;
|
||||||
|
name = Executable;
|
||||||
|
savedGlobals = {
|
||||||
|
};
|
||||||
|
sourceDirectories = (
|
||||||
|
);
|
||||||
|
variableFormatDictionary = {
|
||||||
|
};
|
||||||
|
};
|
||||||
|
99B989D40CC7DEF800C256E9 /* Cog.app */ = {
|
||||||
|
isa = PBXFileReference;
|
||||||
|
explicitFileType = wrapper.application;
|
||||||
|
name = Cog.app;
|
||||||
|
path = /Users/vasfed/cog_src/cog_new/build/Debug/Cog.app;
|
||||||
|
sourceTree = "<absolute>";
|
||||||
|
};
|
||||||
|
99B989F30CC7E10400C256E9 /* APL */ = {
|
||||||
|
activeExec = 0;
|
||||||
|
};
|
||||||
|
99B989F50CC7E10400C256E9 /* APL-Info.plist */ = {
|
||||||
|
uiCtxt = {
|
||||||
|
sepNavIntBoundsRect = "{{0, 0}, {1048, 517}}";
|
||||||
|
sepNavSelRange = "{0, 0}";
|
||||||
|
sepNavVisRect = "{{0, 0}, {1048, 517}}";
|
||||||
|
sepNavWindowFrame = "{{383, 162}, {1071, 675}}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
99B98A350CC7E23F00C256E9 /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 8E8D42180CBB0F3C00135C1B /* APLPlugin.m */;
|
||||||
|
name = "APLPlugin.m: 16";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 249;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 316;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
99B98A770CC7E66D00C256E9 /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 99B989F50CC7E10400C256E9 /* APL-Info.plist */;
|
||||||
|
name = "APL-Info.plist: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 620;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
99B98B350CC7F55800C256E9 /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 99B9863E0CC7A08600C256E9 /* APLFile.h */;
|
||||||
|
name = "APLFile.h: file";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 270;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 481;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
99B98C910CC7F74600C256E9 /* ApeTag.mm:151 */ = {
|
||||||
|
isa = PBXFileBreakpoint;
|
||||||
|
actions = (
|
||||||
|
);
|
||||||
|
breakpointStyle = 0;
|
||||||
|
continueAfterActions = 0;
|
||||||
|
delayBeforeContinue = 0;
|
||||||
|
fileReference = 99B9865F0CC7A20800C256E9 /* ApeTag.mm */;
|
||||||
|
functionName = "-convertToCogTag";
|
||||||
|
hitCount = 1;
|
||||||
|
lineNumber = 151;
|
||||||
|
location = APL;
|
||||||
|
modificationTime = 214432023.266375;
|
||||||
|
state = 1;
|
||||||
|
};
|
||||||
|
99B98C950CC7F75900C256E9 /* ApeTag.mm:146 */ = {
|
||||||
|
isa = PBXFileBreakpoint;
|
||||||
|
actions = (
|
||||||
|
);
|
||||||
|
breakpointStyle = 0;
|
||||||
|
continueAfterActions = 0;
|
||||||
|
delayBeforeContinue = 0;
|
||||||
|
fileReference = 99B9865F0CC7A20800C256E9 /* ApeTag.mm */;
|
||||||
|
functionName = "-convertToCogTag";
|
||||||
|
hitCount = 1;
|
||||||
|
lineNumber = 146;
|
||||||
|
location = APL;
|
||||||
|
modificationTime = 214432023.298172;
|
||||||
|
state = 1;
|
||||||
|
};
|
||||||
|
99B98CA30CC7F7C000C256E9 /* ApeTag.mm:236 */ = {
|
||||||
|
isa = PBXFileBreakpoint;
|
||||||
|
actions = (
|
||||||
|
);
|
||||||
|
breakpointStyle = 0;
|
||||||
|
continueAfterActions = 0;
|
||||||
|
delayBeforeContinue = 0;
|
||||||
|
fileReference = 99B9865F0CC7A20800C256E9 /* ApeTag.mm */;
|
||||||
|
functionName = "-read:";
|
||||||
|
hitCount = 1;
|
||||||
|
lineNumber = 236;
|
||||||
|
location = APL;
|
||||||
|
modificationTime = 214432020.694053;
|
||||||
|
state = 2;
|
||||||
|
};
|
||||||
|
99B98CB00CC7F8A700C256E9 /* APLMetadataReader.m:21 */ = {
|
||||||
|
isa = PBXFileBreakpoint;
|
||||||
|
actions = (
|
||||||
|
);
|
||||||
|
breakpointStyle = 0;
|
||||||
|
continueAfterActions = 0;
|
||||||
|
delayBeforeContinue = 0;
|
||||||
|
fileReference = 17DA346D0CC04FCD0003F6B2 /* APLMetadataReader.m */;
|
||||||
|
functionName = "+metadataForURL:";
|
||||||
|
hitCount = 1;
|
||||||
|
lineNumber = 21;
|
||||||
|
location = APL;
|
||||||
|
modificationTime = 214432024.186878;
|
||||||
|
state = 1;
|
||||||
|
};
|
||||||
|
99B98CB30CC7F8B700C256E9 /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 99B9863F0CC7A08600C256E9 /* APLFile.m */;
|
||||||
|
name = "APLFile.m: 121";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 4298;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 1169;
|
||||||
|
vrLoc = 3316;
|
||||||
|
};
|
||||||
|
99B98CB50CC7F8B700C256E9 /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 99B9865E0CC7A20800C256E9 /* ApeTag.h */;
|
||||||
|
name = "ApeTag.h: flags";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 279;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 929;
|
||||||
|
vrLoc = 323;
|
||||||
|
};
|
||||||
|
99B98CC20CC7F96900C256E9 /* APLFile.m:121 */ = {
|
||||||
|
isa = PBXFileBreakpoint;
|
||||||
|
actions = (
|
||||||
|
);
|
||||||
|
breakpointStyle = 0;
|
||||||
|
continueAfterActions = 0;
|
||||||
|
delayBeforeContinue = 0;
|
||||||
|
fileReference = 99B9863F0CC7A08600C256E9 /* APLFile.m */;
|
||||||
|
functionName = "-initWithFile:";
|
||||||
|
hitCount = 0;
|
||||||
|
lineNumber = 121;
|
||||||
|
location = APL;
|
||||||
|
modificationTime = 214432105.571593;
|
||||||
|
state = 1;
|
||||||
|
};
|
||||||
|
99B98CC70CC7F99E00C256E9 /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 17DA346D0CC04FCD0003F6B2 /* APLMetadataReader.m */;
|
||||||
|
name = "APLMetadataReader.m: 21";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 438;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 503;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
99B98CE90CC7FD4200C256E9 /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 99B9865F0CC7A20800C256E9 /* ApeTag.mm */;
|
||||||
|
name = "ApeTag.mm: 243";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 9505;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 1505;
|
||||||
|
vrLoc = 8010;
|
||||||
|
};
|
||||||
|
99B98CEA0CC7FD4200C256E9 /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 8E8D42360CBB0F9800135C1B /* APLDecoder.m */;
|
||||||
|
name = "APLDecoder.m: 109";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 2741;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 854;
|
||||||
|
vrLoc = 2350;
|
||||||
|
};
|
||||||
|
99B98CEB0CC7FD4200C256E9 /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 99B989F50CC7E10400C256E9 /* APL-Info.plist */;
|
||||||
|
name = "APL-Info.plist: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 620;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
99B98CF40CC7FD7D00C256E9 /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 089C167EFE841241C02AAC07 /* English */;
|
||||||
|
name = "English: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 90;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
99DF138F0CC7FEA600EC5F3E /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 8D5B49B7048680CD000E48DA /* Info.plist */;
|
||||||
|
name = "Info.plist: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 783;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
99DF13A00CC7FF0600EC5F3E /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 32DBCF630370AF2F00C91783 /* APL_Prefix.pch */;
|
||||||
|
name = "APL_Prefix.pch: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 148;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
99DF14AC0CC8013600EC5F3E /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 32DBCF630370AF2F00C91783 /* APL_Prefix.pch */;
|
||||||
|
name = "APL_Prefix.pch: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 148;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,685 @@
|
||||||
|
// !$*UTF8*$!
|
||||||
|
{
|
||||||
|
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||||
|
activeBuildConfigurationName = Release;
|
||||||
|
activeTarget = 99B989F30CC7E10400C256E9 /* APL Plugin */;
|
||||||
|
codeSenseManager = 171D08F70CCA5E71009FF3AB /* Code sense */;
|
||||||
|
perUserDictionary = {
|
||||||
|
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
|
||||||
|
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||||
|
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||||
|
PBXFileTableDataSourceColumnWidthsKey = (
|
||||||
|
20,
|
||||||
|
1000,
|
||||||
|
20,
|
||||||
|
48,
|
||||||
|
43,
|
||||||
|
43,
|
||||||
|
20,
|
||||||
|
);
|
||||||
|
PBXFileTableDataSourceColumnsKey = (
|
||||||
|
PBXFileDataSource_FiletypeID,
|
||||||
|
PBXFileDataSource_Filename_ColumnID,
|
||||||
|
PBXFileDataSource_Built_ColumnID,
|
||||||
|
PBXFileDataSource_ObjectSize_ColumnID,
|
||||||
|
PBXFileDataSource_Errors_ColumnID,
|
||||||
|
PBXFileDataSource_Warnings_ColumnID,
|
||||||
|
PBXFileDataSource_Target_ColumnID,
|
||||||
|
);
|
||||||
|
};
|
||||||
|
PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
|
||||||
|
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||||
|
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||||
|
PBXFileTableDataSourceColumnWidthsKey = (
|
||||||
|
20,
|
||||||
|
200,
|
||||||
|
1000,
|
||||||
|
20,
|
||||||
|
48.1626,
|
||||||
|
43,
|
||||||
|
43,
|
||||||
|
);
|
||||||
|
PBXFileTableDataSourceColumnsKey = (
|
||||||
|
PBXFileDataSource_FiletypeID,
|
||||||
|
PBXFileDataSource_Filename_ColumnID,
|
||||||
|
PBXTargetDataSource_PrimaryAttribute,
|
||||||
|
PBXFileDataSource_Built_ColumnID,
|
||||||
|
PBXFileDataSource_ObjectSize_ColumnID,
|
||||||
|
PBXFileDataSource_Errors_ColumnID,
|
||||||
|
PBXFileDataSource_Warnings_ColumnID,
|
||||||
|
);
|
||||||
|
};
|
||||||
|
PBXPerProjectTemplateStateSaveDate = 214588999;
|
||||||
|
PBXWorkspaceStateSaveDate = 214588999;
|
||||||
|
};
|
||||||
|
perUserProjectItems = {
|
||||||
|
171D095A0CCA608C009FF3AB /* PBXTextBookmark */ = 171D095A0CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D095B0CCA608C009FF3AB /* PBXTextBookmark */ = 171D095B0CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D095C0CCA608C009FF3AB /* PBXTextBookmark */ = 171D095C0CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D095D0CCA608C009FF3AB /* PBXTextBookmark */ = 171D095D0CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D095E0CCA608C009FF3AB /* PBXTextBookmark */ = 171D095E0CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D095F0CCA608C009FF3AB /* PBXTextBookmark */ = 171D095F0CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D09600CCA608C009FF3AB /* PBXTextBookmark */ = 171D09600CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D09610CCA608C009FF3AB /* PBXTextBookmark */ = 171D09610CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D09620CCA608C009FF3AB /* PBXTextBookmark */ = 171D09620CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D09630CCA608C009FF3AB /* PBXTextBookmark */ = 171D09630CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D09640CCA608C009FF3AB /* PBXTextBookmark */ = 171D09640CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D09650CCA608C009FF3AB /* PBXTextBookmark */ = 171D09650CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D09660CCA608C009FF3AB /* PBXTextBookmark */ = 171D09660CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D09670CCA608C009FF3AB /* PBXTextBookmark */ = 171D09670CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D09680CCA608C009FF3AB /* PBXTextBookmark */ = 171D09680CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D09690CCA608C009FF3AB /* PBXTextBookmark */ = 171D09690CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D096A0CCA608C009FF3AB /* PBXTextBookmark */ = 171D096A0CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D096B0CCA608C009FF3AB /* PBXTextBookmark */ = 171D096B0CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D096C0CCA608C009FF3AB /* PBXTextBookmark */ = 171D096C0CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D096D0CCA608C009FF3AB /* PBXTextBookmark */ = 171D096D0CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D096E0CCA608C009FF3AB /* PBXTextBookmark */ = 171D096E0CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D096F0CCA608C009FF3AB /* PBXTextBookmark */ = 171D096F0CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D09700CCA608C009FF3AB /* PBXTextBookmark */ = 171D09700CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D09710CCA608C009FF3AB /* PBXTextBookmark */ = 171D09710CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D09720CCA608C009FF3AB /* PBXTextBookmark */ = 171D09720CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D09730CCA608C009FF3AB /* PBXTextBookmark */ = 171D09730CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D09740CCA608C009FF3AB /* PBXTextBookmark */ = 171D09740CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D09750CCA608C009FF3AB /* PBXTextBookmark */ = 171D09750CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D09760CCA608C009FF3AB /* PBXTextBookmark */ = 171D09760CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D09770CCA608C009FF3AB /* PBXTextBookmark */ = 171D09770CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D09780CCA608C009FF3AB /* PBXTextBookmark */ = 171D09780CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D09790CCA608C009FF3AB /* PBXTextBookmark */ = 171D09790CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D097A0CCA608C009FF3AB /* PBXTextBookmark */ = 171D097A0CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D097B0CCA608C009FF3AB /* PBXTextBookmark */ = 171D097B0CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D097C0CCA608C009FF3AB /* PBXTextBookmark */ = 171D097C0CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D097D0CCA608C009FF3AB /* PBXTextBookmark */ = 171D097D0CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D097E0CCA608C009FF3AB /* PBXTextBookmark */ = 171D097E0CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D097F0CCA608C009FF3AB /* PBXTextBookmark */ = 171D097F0CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D09800CCA608C009FF3AB /* PBXTextBookmark */ = 171D09800CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D09810CCA608C009FF3AB /* PBXTextBookmark */ = 171D09810CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D09820CCA608C009FF3AB /* PBXTextBookmark */ = 171D09820CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D09830CCA608C009FF3AB /* PBXTextBookmark */ = 171D09830CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D09840CCA608C009FF3AB /* PBXTextBookmark */ = 171D09840CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D09850CCA608C009FF3AB /* PBXTextBookmark */ = 171D09850CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D09860CCA608C009FF3AB /* PBXTextBookmark */ = 171D09860CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D09870CCA608C009FF3AB /* PBXTextBookmark */ = 171D09870CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D09880CCA608C009FF3AB /* PBXTextBookmark */ = 171D09880CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D09890CCA608C009FF3AB /* PBXTextBookmark */ = 171D09890CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
171D098A0CCA608C009FF3AB /* PBXTextBookmark */ = 171D098A0CCA608C009FF3AB /* PBXTextBookmark */;
|
||||||
|
};
|
||||||
|
sourceControlManager = 171D08F60CCA5E71009FF3AB /* Source Control */;
|
||||||
|
userBuildSettings = {
|
||||||
|
};
|
||||||
|
};
|
||||||
|
171D08F60CCA5E71009FF3AB /* Source Control */ = {
|
||||||
|
isa = PBXSourceControlManager;
|
||||||
|
fallbackIsa = XCSourceControlManager;
|
||||||
|
isSCMEnabled = 0;
|
||||||
|
scmConfiguration = {
|
||||||
|
};
|
||||||
|
scmType = "";
|
||||||
|
};
|
||||||
|
171D08F70CCA5E71009FF3AB /* Code sense */ = {
|
||||||
|
isa = PBXCodeSenseManager;
|
||||||
|
indexTemplatePath = "";
|
||||||
|
};
|
||||||
|
171D095A0CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 99B9863E0CC7A08600C256E9 /* APLFile.h */;
|
||||||
|
name = "APLFile.h: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 482;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
171D095B0CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 17DA346D0CC04FCD0003F6B2 /* APLMetadataReader.m */;
|
||||||
|
name = "APLMetadataReader.m: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 505;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
171D095C0CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 17DA346C0CC04FCD0003F6B2 /* APLMetadataReader.h */;
|
||||||
|
name = "APLMetadataReader.h: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 271;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
171D095D0CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 8E8D42350CBB0F9800135C1B /* APLDecoder.h */;
|
||||||
|
name = "APLDecoder.h: 13";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 179;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 541;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
171D095E0CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 8E8D42360CBB0F9800135C1B /* APLDecoder.m */;
|
||||||
|
name = "APLDecoder.m: 76";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 2147;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 1611;
|
||||||
|
vrLoc = 829;
|
||||||
|
};
|
||||||
|
171D095F0CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 99B9865F0CC7A20800C256E9 /* ApeTag.mm */;
|
||||||
|
name = pack;
|
||||||
|
rLen = 4;
|
||||||
|
rLoc = 7379;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 2965;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
171D09600CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 99B9865E0CC7A20800C256E9 /* ApeTag.h */;
|
||||||
|
name = "ApeTag.h: 24";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 448;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 1233;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
171D09610CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 99B9863F0CC7A08600C256E9 /* APLFile.m */;
|
||||||
|
name = "APLFile.m: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 1946;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
171D09620CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 8E8D423C0CBB0FF600135C1B /* Plugin.h */;
|
||||||
|
name = "Plugin.h: 17";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 384;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 1477;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
171D09630CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 8D5B49B7048680CD000E48DA /* Info.plist */;
|
||||||
|
name = "Info.plist: 24";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 747;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 774;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
171D09640CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 8E8D423C0CBB0FF600135C1B /* Plugin.h */;
|
||||||
|
name = "Plugin.h: 24";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 525;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 1477;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
171D09650CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 8D5B49B7048680CD000E48DA /* Info.plist */;
|
||||||
|
name = "Info.plist: 24";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 747;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 774;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
171D09660CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 17DA346C0CC04FCD0003F6B2 /* APLMetadataReader.h */;
|
||||||
|
name = "APLMetadataReader.h: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 270;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
171D09670CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 8E8D42360CBB0F9800135C1B /* APLDecoder.m */;
|
||||||
|
name = "APLDecoder.m: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 1749;
|
||||||
|
vrLoc = 487;
|
||||||
|
};
|
||||||
|
171D09680CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 8E8D423C0CBB0FF600135C1B /* Plugin.h */;
|
||||||
|
name = "Plugin.h: 24";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 525;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 1477;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
171D09690CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 8E8D42350CBB0F9800135C1B /* APLDecoder.h */;
|
||||||
|
name = "APLDecoder.h: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 537;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
171D096A0CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 8E8D42360CBB0F9800135C1B /* APLDecoder.m */;
|
||||||
|
name = "APLDecoder.m: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 1749;
|
||||||
|
vrLoc = 487;
|
||||||
|
};
|
||||||
|
171D096B0CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 99B9863E0CC7A08600C256E9 /* APLFile.h */;
|
||||||
|
name = "APLFile.h: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 481;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
171D096C0CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 99B9863F0CC7A08600C256E9 /* APLFile.m */;
|
||||||
|
name = "APLFile.m: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 1943;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
171D096D0CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 17DA346C0CC04FCD0003F6B2 /* APLMetadataReader.h */;
|
||||||
|
name = "APLMetadataReader.h: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 270;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
171D096E0CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 8E8D42350CBB0F9800135C1B /* APLDecoder.h */;
|
||||||
|
name = "APLDecoder.h: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 537;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
171D096F0CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 17DA346D0CC04FCD0003F6B2 /* APLMetadataReader.m */;
|
||||||
|
name = "APLMetadataReader.m: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 503;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
171D09700CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 8E8D42360CBB0F9800135C1B /* APLDecoder.m */;
|
||||||
|
name = "APLDecoder.m: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 1749;
|
||||||
|
vrLoc = 487;
|
||||||
|
};
|
||||||
|
171D09710CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 99B9863E0CC7A08600C256E9 /* APLFile.h */;
|
||||||
|
name = "APLFile.h: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 481;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
171D09720CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 99B9865F0CC7A20800C256E9 /* ApeTag.mm */;
|
||||||
|
name = "ApeTag.mm: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 2965;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
171D09730CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 99B9865E0CC7A20800C256E9 /* ApeTag.h */;
|
||||||
|
name = "ApeTag.h: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 1252;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
171D09740CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 99B9865F0CC7A20800C256E9 /* ApeTag.mm */;
|
||||||
|
name = "ApeTag.mm: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 2965;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
171D09750CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 99B9863F0CC7A08600C256E9 /* APLFile.m */;
|
||||||
|
name = "APLFile.m: 15";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 275;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 1946;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
171D09760CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 99B9865F0CC7A20800C256E9 /* ApeTag.mm */;
|
||||||
|
name = "ApeTag.mm: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 1628;
|
||||||
|
vrLoc = 3725;
|
||||||
|
};
|
||||||
|
171D09770CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 99B9863F0CC7A08600C256E9 /* APLFile.m */;
|
||||||
|
name = "APLFile.m: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 1946;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
171D09780CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 99B9865E0CC7A20800C256E9 /* ApeTag.h */;
|
||||||
|
name = "ApeTag.h: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 1234;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
171D09790CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 99B9863E0CC7A08600C256E9 /* APLFile.h */;
|
||||||
|
name = "APLFile.h: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 482;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
171D097A0CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 17DA346D0CC04FCD0003F6B2 /* APLMetadataReader.m */;
|
||||||
|
name = "APLMetadataReader.m: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 505;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
171D097B0CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 17DA346C0CC04FCD0003F6B2 /* APLMetadataReader.h */;
|
||||||
|
name = "APLMetadataReader.h: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 271;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
171D097C0CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 8E8D42360CBB0F9800135C1B /* APLDecoder.m */;
|
||||||
|
name = "APLDecoder.m: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 1749;
|
||||||
|
vrLoc = 487;
|
||||||
|
};
|
||||||
|
171D097D0CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 8E8D42350CBB0F9800135C1B /* APLDecoder.h */;
|
||||||
|
name = "APLDecoder.h: 13";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 179;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 541;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
171D097E0CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 8E8D42360CBB0F9800135C1B /* APLDecoder.m */;
|
||||||
|
name = "APLDecoder.m: 76";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 2147;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 1611;
|
||||||
|
vrLoc = 829;
|
||||||
|
};
|
||||||
|
171D097F0CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 99B9865F0CC7A20800C256E9 /* ApeTag.mm */;
|
||||||
|
name = "ApeTag.mm: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 1628;
|
||||||
|
vrLoc = 3725;
|
||||||
|
};
|
||||||
|
171D09800CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 99B9865E0CC7A20800C256E9 /* ApeTag.h */;
|
||||||
|
name = "ApeTag.h: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 1234;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
171D09810CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 99B9865F0CC7A20800C256E9 /* ApeTag.mm */;
|
||||||
|
name = "ApeTag.mm: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 1628;
|
||||||
|
vrLoc = 3725;
|
||||||
|
};
|
||||||
|
171D09820CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 99B9863F0CC7A08600C256E9 /* APLFile.m */;
|
||||||
|
name = "APLFile.m: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 1946;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
171D09830CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 99B9865E0CC7A20800C256E9 /* ApeTag.h */;
|
||||||
|
name = "ApeTag.h: 24";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 448;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 1233;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
171D09840CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 99B9865F0CC7A20800C256E9 /* ApeTag.mm */;
|
||||||
|
name = "ApeTag.mm: createTag:flags:data:";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 3779;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 2149;
|
||||||
|
vrLoc = 2801;
|
||||||
|
};
|
||||||
|
171D09850CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 99B9865E0CC7A20800C256E9 /* ApeTag.h */;
|
||||||
|
name = "ApeTag.h: 24";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 448;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 1233;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
171D09860CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 99B9865F0CC7A20800C256E9 /* ApeTag.mm */;
|
||||||
|
name = pack;
|
||||||
|
rLen = 4;
|
||||||
|
rLoc = 7379;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 2965;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
171D09870CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 99B9865E0CC7A20800C256E9 /* ApeTag.h */;
|
||||||
|
name = "ApeTag.h: 24";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 448;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 1233;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
171D09880CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 99B9863F0CC7A08600C256E9 /* APLFile.m */;
|
||||||
|
name = "APLFile.m: 1";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 0;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 1946;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
171D09890CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 8E8D423C0CBB0FF600135C1B /* Plugin.h */;
|
||||||
|
name = "Plugin.h: 17";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 384;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 1477;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
171D098A0CCA608C009FF3AB /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 8D5B49B7048680CD000E48DA /* Info.plist */;
|
||||||
|
name = "Info.plist: 15";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 528;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 774;
|
||||||
|
vrLoc = 0;
|
||||||
|
};
|
||||||
|
17DA346C0CC04FCD0003F6B2 /* APLMetadataReader.h */ = {
|
||||||
|
uiCtxt = {
|
||||||
|
sepNavIntBoundsRect = "{{0, 0}, {1431, 815}}";
|
||||||
|
sepNavSelRange = "{0, 0}";
|
||||||
|
sepNavVisRect = "{{0, 0}, {1431, 815}}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
17DA346D0CC04FCD0003F6B2 /* APLMetadataReader.m */ = {
|
||||||
|
uiCtxt = {
|
||||||
|
sepNavIntBoundsRect = "{{0, 0}, {1431, 815}}";
|
||||||
|
sepNavSelRange = "{0, 0}";
|
||||||
|
sepNavVisRect = "{{0, 0}, {1431, 815}}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
8D5B49B7048680CD000E48DA /* Info.plist */ = {
|
||||||
|
uiCtxt = {
|
||||||
|
sepNavIntBoundsRect = "{{0, 0}, {1431, 815}}";
|
||||||
|
sepNavSelRange = "{528, 0}";
|
||||||
|
sepNavVisRect = "{{0, 0}, {1431, 815}}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
8E8D42350CBB0F9800135C1B /* APLDecoder.h */ = {
|
||||||
|
uiCtxt = {
|
||||||
|
sepNavIntBoundsRect = "{{0, 0}, {1431, 815}}";
|
||||||
|
sepNavSelRange = "{179, 0}";
|
||||||
|
sepNavVisRect = "{{0, 0}, {1431, 815}}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
8E8D42360CBB0F9800135C1B /* APLDecoder.m */ = {
|
||||||
|
uiCtxt = {
|
||||||
|
sepNavIntBoundsRect = "{{0, 0}, {1431, 2366}}";
|
||||||
|
sepNavSelRange = "{2147, 0}";
|
||||||
|
sepNavVisRect = "{{0, 581}, {1431, 815}}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
8E8D423C0CBB0FF600135C1B /* Plugin.h */ = {
|
||||||
|
uiCtxt = {
|
||||||
|
sepNavIntBoundsRect = "{{0, 0}, {1431, 1008}}";
|
||||||
|
sepNavSelRange = "{525, 0}";
|
||||||
|
sepNavVisRect = "{{0, 0}, {1431, 815}}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
99B9863E0CC7A08600C256E9 /* APLFile.h */ = {
|
||||||
|
uiCtxt = {
|
||||||
|
sepNavIntBoundsRect = "{{0, 0}, {1431, 815}}";
|
||||||
|
sepNavSelRange = "{0, 0}";
|
||||||
|
sepNavVisRect = "{{0, 0}, {1431, 815}}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
99B9863F0CC7A08600C256E9 /* APLFile.m */ = {
|
||||||
|
uiCtxt = {
|
||||||
|
sepNavIntBoundsRect = "{{0, 0}, {1431, 1890}}";
|
||||||
|
sepNavSelRange = "{0, 0}";
|
||||||
|
sepNavVisRect = "{{0, 0}, {1431, 815}}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
99B9865E0CC7A20800C256E9 /* ApeTag.h */ = {
|
||||||
|
uiCtxt = {
|
||||||
|
sepNavIntBoundsRect = "{{0, 0}, {1431, 815}}";
|
||||||
|
sepNavSelRange = "{448, 0}";
|
||||||
|
sepNavVisRect = "{{0, 0}, {1431, 815}}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
99B9865F0CC7A20800C256E9 /* ApeTag.mm */ = {
|
||||||
|
uiCtxt = {
|
||||||
|
sepNavIntBoundsRect = "{{0, 0}, {1431, 3458}}";
|
||||||
|
sepNavSelRange = "{7379, 4}";
|
||||||
|
sepNavVisRect = "{{0, 0}, {1431, 815}}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
99B989F30CC7E10400C256E9 /* APL Plugin */ = {
|
||||||
|
activeExec = 0;
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,27 @@
|
||||||
|
//
|
||||||
|
// APLDecoder.h
|
||||||
|
|
||||||
|
#import <Cocoa/Cocoa.h>
|
||||||
|
|
||||||
|
#import "Plugin.h"
|
||||||
|
|
||||||
|
@class APLFile;
|
||||||
|
|
||||||
|
@interface APLDecoder : NSObject <CogDecoder> {
|
||||||
|
id<CogSource> source;
|
||||||
|
id<CogDecoder> decoder;
|
||||||
|
|
||||||
|
int bytesPerFrame; //Number of bytes per frame, ie channels * (bitsPerSample/8)
|
||||||
|
int bytesPerSecond; //Number of bytes per second, ie bytesPerFrame * sampleRate
|
||||||
|
int bytePosition; //Current position in bytes.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
double trackStart;
|
||||||
|
double trackEnd; //miliseconds until end of track.
|
||||||
|
double trackLength; //track len in miliseconds
|
||||||
|
|
||||||
|
APLFile *apl;
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
|
@ -0,0 +1,168 @@
|
||||||
|
//
|
||||||
|
// CueSheetDecoder.m
|
||||||
|
// CueSheet
|
||||||
|
//
|
||||||
|
// Created by Zaphod Beeblebrox on 10/8/07.
|
||||||
|
// Copyright 2007 __MyCompanyName__. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "APLDecoder.h"
|
||||||
|
#import "APLFile.h"
|
||||||
|
|
||||||
|
@implementation APLDecoder
|
||||||
|
|
||||||
|
+ (NSArray *)fileTypes {
|
||||||
|
return [NSArray arrayWithObject:@"apl"];
|
||||||
|
}
|
||||||
|
|
||||||
|
+ (NSArray *)mimeTypes {
|
||||||
|
return [NSArray arrayWithObjects:@"application/x-apl", nil];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSDictionary *)properties {
|
||||||
|
NSMutableDictionary *properties = [[decoder properties] mutableCopy];
|
||||||
|
|
||||||
|
//Need to alter length
|
||||||
|
[properties setObject:[NSNumber numberWithDouble:trackLength] forKey:@"length"];
|
||||||
|
return [properties autorelease];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL)open:(id<CogSource>)s
|
||||||
|
{
|
||||||
|
NSLog(@"Loading apl...");
|
||||||
|
if (![[s url] isFileURL])
|
||||||
|
return NO;
|
||||||
|
|
||||||
|
NSURL *url = [s url];
|
||||||
|
[s close];
|
||||||
|
|
||||||
|
apl = [APLFile createWithFile:[url path]];
|
||||||
|
[apl retain];
|
||||||
|
|
||||||
|
//Kind of a hackish way of accessing outside classes.
|
||||||
|
source = [NSClassFromString(@"AudioSource") audioSourceForURL:[apl file]];
|
||||||
|
[source retain];
|
||||||
|
|
||||||
|
if (![source open:[apl file]]) {
|
||||||
|
NSLog(@"Could not open source for file '%@' referenced in apl", [apl file]);
|
||||||
|
return NO;
|
||||||
|
}
|
||||||
|
decoder = [NSClassFromString(@"AudioDecoder") audioDecoderForSource:source];
|
||||||
|
[decoder retain];
|
||||||
|
|
||||||
|
if (![decoder open:source]) {
|
||||||
|
NSLog(@"Could not open decoder for source for apl");
|
||||||
|
return NO;
|
||||||
|
}
|
||||||
|
|
||||||
|
NSDictionary *properties = [decoder properties];
|
||||||
|
int bitsPerSample = [[properties objectForKey:@"bitsPerSample"] intValue];
|
||||||
|
int channels = [[properties objectForKey:@"channels"] intValue];
|
||||||
|
float sampleRate = [[properties objectForKey:@"sampleRate"] floatValue];
|
||||||
|
|
||||||
|
|
||||||
|
bytesPerFrame = (bitsPerSample/8) * channels;
|
||||||
|
bytesPerSecond = (int)(bytesPerFrame * sampleRate);
|
||||||
|
|
||||||
|
if ([apl endBlock] > [apl startBlock]) trackEnd = ([apl endBlock] / sampleRate) * 1000.0;
|
||||||
|
else trackEnd = [[properties objectForKey:@"length"] doubleValue];
|
||||||
|
trackStart = ([apl startBlock]/sampleRate) * 1000.0;
|
||||||
|
trackLength = trackEnd - trackStart;
|
||||||
|
|
||||||
|
[decoder seekToTime: trackStart];
|
||||||
|
|
||||||
|
//Note: Should register for observations of the decoder, but laziness consumes all.
|
||||||
|
[self willChangeValueForKey:@"properties"];
|
||||||
|
[self didChangeValueForKey:@"properties"];
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)close {
|
||||||
|
if (decoder) {
|
||||||
|
[decoder close];
|
||||||
|
[decoder release];
|
||||||
|
decoder = nil;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (source) {
|
||||||
|
[source release];
|
||||||
|
source = nil;
|
||||||
|
}
|
||||||
|
if (apl) {
|
||||||
|
[apl release];
|
||||||
|
apl = nil;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
- (BOOL)setTrack_1111:(NSURL *)url
|
||||||
|
{
|
||||||
|
// see if next apl is next track...
|
||||||
|
if ([[url fragment] intValue] == [[track track] intValue] + 1) {
|
||||||
|
NSArray *tracks = [cuesheet tracks];
|
||||||
|
|
||||||
|
int i;
|
||||||
|
for (i = 0; i < [tracks count]; i++) {
|
||||||
|
if ([[[tracks objectAtIndex:i] track] isEqualToString:[url fragment]]){
|
||||||
|
[track release];
|
||||||
|
track = [tracks objectAtIndex:i];
|
||||||
|
[track retain];
|
||||||
|
|
||||||
|
CueSheetTrack *nextTrack = nil;
|
||||||
|
if (i + 1 < [tracks count]) {
|
||||||
|
nextTrack = [tracks objectAtIndex:i + 1];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (nextTrack && [[[nextTrack url] absoluteString] isEqualToString:[[track url] absoluteString]]) {
|
||||||
|
trackEnd = [nextTrack time];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
trackEnd = [[[decoder properties] objectForKey:@"length"] doubleValue]/1000.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
NSLog(@"CHANGING TRACK!");
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return NO;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
- (double)seekToTime:(double)time //milliseconds
|
||||||
|
{
|
||||||
|
if (time > trackLength || time < 0) {
|
||||||
|
//need a better way of returning fail.
|
||||||
|
return -1.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
time += trackStart;
|
||||||
|
|
||||||
|
bytePosition = (time/1000.0) * bytesPerSecond;
|
||||||
|
|
||||||
|
NSLog(@"Before: %li", bytePosition);
|
||||||
|
bytePosition -= bytePosition % bytesPerFrame;
|
||||||
|
NSLog(@"After: %li", bytePosition);
|
||||||
|
|
||||||
|
return [decoder seekToTime:time];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (int)fillBuffer:(void *)buf ofSize:(UInt32)size
|
||||||
|
{
|
||||||
|
long trackByteEnd = (trackEnd/1000.0) * bytesPerSecond;
|
||||||
|
trackByteEnd -= trackByteEnd % (bytesPerFrame);
|
||||||
|
|
||||||
|
if (bytePosition + size > trackByteEnd)
|
||||||
|
size = trackByteEnd - bytePosition;
|
||||||
|
|
||||||
|
if (!size)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
int n = [decoder fillBuffer:buf ofSize:size];
|
||||||
|
bytePosition += n;
|
||||||
|
return n;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@end
|
|
@ -0,0 +1,28 @@
|
||||||
|
//
|
||||||
|
// APLFile.h
|
||||||
|
// APL
|
||||||
|
//
|
||||||
|
// Created by ??????? ???????? on 10/18/07.
|
||||||
|
// Copyright 2007 __MyCompanyName__. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Cocoa/Cocoa.h>
|
||||||
|
|
||||||
|
@class ApeTag;
|
||||||
|
|
||||||
|
@interface APLFile : NSObject {
|
||||||
|
long startBlock;
|
||||||
|
long endBlock;
|
||||||
|
ApeTag* tag;
|
||||||
|
NSURL* file;
|
||||||
|
}
|
||||||
|
+createWithFile:(NSString*)f;
|
||||||
|
-initWithFile:(NSString*)f;
|
||||||
|
|
||||||
|
-(long)startBlock; // always return 0 or greater!
|
||||||
|
-(long)endBlock;
|
||||||
|
-(ApeTag*) tag;
|
||||||
|
-(NSURL*) file;
|
||||||
|
|
||||||
|
//writing support to be added in far future
|
||||||
|
@end
|
|
@ -0,0 +1,134 @@
|
||||||
|
//
|
||||||
|
// APLFile.m
|
||||||
|
// APL
|
||||||
|
//
|
||||||
|
// Created by ??????? ???????? on 10/18/07.
|
||||||
|
// Copyright 2007 __MyCompanyName__. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "APLFile.h"
|
||||||
|
#import "ApeTag.h"
|
||||||
|
|
||||||
|
@implementation APLFile
|
||||||
|
+createWithFile:(NSString*)f { return [[APLFile alloc] initWithFile:f]; }
|
||||||
|
|
||||||
|
|
||||||
|
-(NSString*) readline:(NSFileHandle*)f { // rather hack-style substitution to fgets...
|
||||||
|
NSMutableData* d = [NSMutableData dataWithCapacity:100]; //it will grow, here should be most expected value (may gain few nanosecond from it =) )
|
||||||
|
while(true) {
|
||||||
|
NSData* byte = [f readDataOfLength:1];
|
||||||
|
if (!byte)
|
||||||
|
{
|
||||||
|
[f seekToFileOffset:([f offsetInFile]-[d length])];
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
[d appendData:byte];
|
||||||
|
if (*((const char*)[byte bytes]) == '\n') break;
|
||||||
|
}
|
||||||
|
NSString* s = [[NSString alloc] initWithData:d encoding:NSUTF8StringEncoding]; //!handle encoding error (in case binary data starts not from newline, impossible on real apl, but who knows...)
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSURL *)urlForPath:(NSString *)path relativeTo:(NSString *)baseFilename
|
||||||
|
{
|
||||||
|
NSRange protocolRange = [path rangeOfString:@"://"];
|
||||||
|
if (protocolRange.location != NSNotFound)
|
||||||
|
{
|
||||||
|
return [NSURL URLWithString:path];
|
||||||
|
}
|
||||||
|
|
||||||
|
NSMutableString *unixPath = [path mutableCopy];
|
||||||
|
|
||||||
|
NSString *fragment = @"";
|
||||||
|
NSRange fragmentRange = [path rangeOfString:@"#"];
|
||||||
|
if (fragmentRange.location != NSNotFound)
|
||||||
|
{
|
||||||
|
fragmentRange = NSMakeRange(fragmentRange.location, [unixPath length] - fragmentRange.location);
|
||||||
|
|
||||||
|
fragment = [unixPath substringWithRange:fragmentRange];
|
||||||
|
[unixPath deleteCharactersInRange:fragmentRange];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (![unixPath hasPrefix:@"/"]) {
|
||||||
|
//Only relative paths would have windows backslashes.
|
||||||
|
[unixPath replaceOccurrencesOfString:@"\\" withString:@"/" options:0 range:NSMakeRange(0, [unixPath length])];
|
||||||
|
|
||||||
|
NSString *basePath = [[[baseFilename stringByStandardizingPath] stringByDeletingLastPathComponent] stringByAppendingString:@"/"];
|
||||||
|
|
||||||
|
[unixPath insertString:basePath atIndex:0];
|
||||||
|
}
|
||||||
|
|
||||||
|
//Append the fragment
|
||||||
|
return [NSURL URLWithString:[[[NSURL fileURLWithPath:unixPath] absoluteString] stringByAppendingString: fragment]];
|
||||||
|
}
|
||||||
|
|
||||||
|
-initWithFile:(NSString*)filename {
|
||||||
|
self = [super init];
|
||||||
|
if (self)
|
||||||
|
{
|
||||||
|
//startBlock must be always >= 0
|
||||||
|
NSFileHandle* f = (NSFileHandle*)[NSFileHandle fileHandleForReadingAtPath:filename];
|
||||||
|
if(!f){
|
||||||
|
NSLog(@"Failed to open apl file '%@' for reading", f);
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
NSString* header = @"[Monkey's Audio Image Link File]\r\n";
|
||||||
|
NSData* da = [f readDataOfLength:[header length]];
|
||||||
|
if (!da) {
|
||||||
|
NSLog(@"Cannot read header");
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
NSString* str = [[NSString alloc] initWithData:da encoding: NSASCIIStringEncoding];
|
||||||
|
if([str compare:header options:NSCaseInsensitiveSearch]) {
|
||||||
|
NSLog(@"APL header mismatch");
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
//now read by lines, skip empty, up to line <tagline> (or any starting with '-' - may be other tags can be present)
|
||||||
|
NSString* line = nil;
|
||||||
|
NSScanner *scanner = nil;
|
||||||
|
//NSCharacterSet *whitespace = [NSCharacterSet whitespaceAndNewlineCharacterSet];
|
||||||
|
while(line = [self readline:f]) {
|
||||||
|
if (![line compare:@"----- APE TAG (DO NOT TOUCH!!!) -----\r\n" options:NSCaseInsensitiveSearch]) break;
|
||||||
|
if([line characterAtIndex:0] == '-') break;
|
||||||
|
[scanner release];
|
||||||
|
scanner = [[NSScanner alloc] initWithString:line];
|
||||||
|
NSString* field = nil, *value = nil;
|
||||||
|
if (![scanner scanUpToString:@"=" intoString:&field]) continue;
|
||||||
|
if (![scanner scanString:@"=" intoString:nil]) continue;
|
||||||
|
if (![scanner scanUpToString:@"\r\n" intoString:&value]) continue;
|
||||||
|
if (![field compare:@"Image File" options:NSCaseInsensitiveSearch])
|
||||||
|
{
|
||||||
|
[file release];
|
||||||
|
file = [self urlForPath:value relativeTo:filename];
|
||||||
|
NSLog(@"APL refers to file '%@'", file);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (![field compare:@"Start Block" options:NSCaseInsensitiveSearch])
|
||||||
|
{
|
||||||
|
startBlock = [value intValue]; //!!! bugs with files over 2GB
|
||||||
|
NSLog(@"APL start block %d (%@)", startBlock, value);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (![field compare:@"Finish Block" options:NSCaseInsensitiveSearch])
|
||||||
|
{
|
||||||
|
endBlock = [value intValue]; //!!! bugs with files over 2GB
|
||||||
|
NSLog(@"APL start block %d (%@)", endBlock, value);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
[scanner release];
|
||||||
|
//check here for EOF? cocoa does not have this functionality :(
|
||||||
|
tag = [ApeTag createFromFileRead:f];
|
||||||
|
[f closeFile];
|
||||||
|
}
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
|
-(long)startBlock { return startBlock; }
|
||||||
|
-(long)endBlock { return endBlock; }
|
||||||
|
-(ApeTag*) tag { return tag; }
|
||||||
|
-(NSURL*) file { return file; }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@end
|
|
@ -0,0 +1,17 @@
|
||||||
|
//
|
||||||
|
// CueSheetMetadataReader.h
|
||||||
|
// CueSheet
|
||||||
|
//
|
||||||
|
// Created by Vincent Spader on 10/12/07.
|
||||||
|
// Copyright 2007 __MyCompanyName__. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Cocoa/Cocoa.h>
|
||||||
|
|
||||||
|
#import "Plugin.h"
|
||||||
|
|
||||||
|
@interface APLMetadataReader : NSObject <CogMetadataReader> {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
|
@ -0,0 +1,26 @@
|
||||||
|
//
|
||||||
|
// APLMetadataReader.m
|
||||||
|
|
||||||
|
|
||||||
|
#import "APLMetadataReader.h"
|
||||||
|
#import "APLDecoder.h"
|
||||||
|
|
||||||
|
#import "APLFile.h"
|
||||||
|
#import "ApeTag.h"
|
||||||
|
|
||||||
|
@implementation APLMetadataReader
|
||||||
|
|
||||||
|
+ (NSArray *)fileTypes { return [APLDecoder fileTypes]; }
|
||||||
|
+ (NSArray *)mimeTypes { return [APLDecoder mimeTypes]; }
|
||||||
|
|
||||||
|
+ (NSDictionary *)metadataForURL:(NSURL *)url {
|
||||||
|
if (![url isFileURL]) return nil;
|
||||||
|
|
||||||
|
APLFile *apl = [APLFile createWithFile:[url path]];
|
||||||
|
|
||||||
|
ApeTag* tag = [apl tag];
|
||||||
|
NSDictionary* res =[tag convertToCogTag];
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
|
@ -0,0 +1,7 @@
|
||||||
|
//
|
||||||
|
// Prefix header for all source files of the 'CueSheet' target in the 'CueSheet' project.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifdef __OBJC__
|
||||||
|
#import <Cocoa/Cocoa.h>
|
||||||
|
#endif
|
|
@ -0,0 +1,54 @@
|
||||||
|
//
|
||||||
|
// ApeTag.h
|
||||||
|
// MacApl
|
||||||
|
//
|
||||||
|
// Created by ??????? ???????? on 10/15/07.
|
||||||
|
// Copyright 2007 Vasfed. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Cocoa/Cocoa.h>
|
||||||
|
|
||||||
|
//not full support!! and even may have not enougth checks to find a non-supported data!
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@interface ApeTagItem: NSObject {
|
||||||
|
UInt32 flags;
|
||||||
|
NSString* tag;
|
||||||
|
NSData* data;
|
||||||
|
}
|
||||||
|
|
||||||
|
+createTag:(NSString*)t flags:(SInt32)f data:(NSData*)d;
|
||||||
|
-initTag:(NSString*)t flags:(SInt32)f data:(NSData*)d;
|
||||||
|
|
||||||
|
//for writing:
|
||||||
|
-(NSData*) pack;
|
||||||
|
|
||||||
|
//for reading:
|
||||||
|
-(NSString*) tag;
|
||||||
|
-(bool) isString; //returns whether data is UTF-8 string(or implicitly can be converted to)
|
||||||
|
-(NSString*) getString; //returns string, if is not string - this is error, check isString before
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@interface ApeTag : NSObject {
|
||||||
|
NSMutableArray* fields;
|
||||||
|
}
|
||||||
|
|
||||||
|
+(id)create;
|
||||||
|
+(id)createFromFileRead:(NSFileHandle*)f;
|
||||||
|
-(id)init;
|
||||||
|
-(id)initFromFileRead:(NSFileHandle*)f;
|
||||||
|
|
||||||
|
-(NSArray*) fields; // returns fields array
|
||||||
|
|
||||||
|
-(void) addField:(NSString*)f text:(NSString*)t;
|
||||||
|
-(NSData*) pack; //returns comoplete tag, ready for writing to file/transmitting smwhere
|
||||||
|
|
||||||
|
-(void) write:(NSFileHandle*)f; //writes to file output of -pack
|
||||||
|
-(bool) read:(NSFileHandle*)f; //reads from file, returns true on success
|
||||||
|
|
||||||
|
-(NSDictionary*) convertToCogTag;
|
||||||
|
@end
|
|
@ -0,0 +1,246 @@
|
||||||
|
//
|
||||||
|
// ApeTag.mm
|
||||||
|
// MacApl
|
||||||
|
//
|
||||||
|
// Created by ??????? ???????? on 10/15/07.
|
||||||
|
// Copyright 2007 __MyCompanyName__. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
// as simple as it can be - just write a readable tag, no options etc.
|
||||||
|
|
||||||
|
|
||||||
|
#import "ApeTag.h"
|
||||||
|
|
||||||
|
#define CURRENT_APE_TAG_VERSION 2000
|
||||||
|
/*****************************************************************************************
|
||||||
|
"Standard" APE tag fields
|
||||||
|
*****************************************************************************************/
|
||||||
|
#define APE_TAG_FIELD_TITLE @"Title"
|
||||||
|
#define APE_TAG_FIELD_ARTIST @"Artist"
|
||||||
|
#define APE_TAG_FIELD_ALBUM @"Album"
|
||||||
|
#define APE_TAG_FIELD_COMMENT @"Comment"
|
||||||
|
#define APE_TAG_FIELD_YEAR @"Year"
|
||||||
|
#define APE_TAG_FIELD_TRACK @"Track"
|
||||||
|
#define APE_TAG_FIELD_GENRE @"Genre"
|
||||||
|
#define APE_TAG_FIELD_COVER_ART_FRONT @"Cover Art (front)"
|
||||||
|
#define APE_TAG_FIELD_NOTES @"Notes"
|
||||||
|
#define APE_TAG_FIELD_LYRICS @"Lyrics"
|
||||||
|
#define APE_TAG_FIELD_COPYRIGHT @"Copyright"
|
||||||
|
#define APE_TAG_FIELD_BUY_URL @"Buy URL"
|
||||||
|
#define APE_TAG_FIELD_ARTIST_URL @"Artist URL"
|
||||||
|
#define APE_TAG_FIELD_PUBLISHER_URL @"Publisher URL"
|
||||||
|
#define APE_TAG_FIELD_FILE_URL @"File URL"
|
||||||
|
#define APE_TAG_FIELD_COPYRIGHT_URL @"Copyright URL"
|
||||||
|
#define APE_TAG_FIELD_MJ_METADATA @"Media Jukebox Metadata"
|
||||||
|
#define APE_TAG_FIELD_TOOL_NAME @"Tool Name"
|
||||||
|
#define APE_TAG_FIELD_TOOL_VERSION @"Tool Version"
|
||||||
|
#define APE_TAG_FIELD_PEAK_LEVEL @"Peak Level"
|
||||||
|
#define APE_TAG_FIELD_REPLAY_GAIN_RADIO @"Replay Gain (radio)"
|
||||||
|
#define APE_TAG_FIELD_REPLAY_GAIN_ALBUM @"Replay Gain (album)"
|
||||||
|
#define APE_TAG_FIELD_COMPOSER @"Composer"
|
||||||
|
#define APE_TAG_FIELD_KEYWORDS @"Keywords"
|
||||||
|
|
||||||
|
/*****************************************************************************************
|
||||||
|
Standard APE tag field values
|
||||||
|
*****************************************************************************************/
|
||||||
|
#define APE_TAG_GENRE_UNDEFINED @"Undefined"
|
||||||
|
/*****************************************************************************************
|
||||||
|
Footer (and header) flags
|
||||||
|
*****************************************************************************************/
|
||||||
|
#define APE_TAG_FLAG_CONTAINS_HEADER (1 << 31)
|
||||||
|
#define APE_TAG_FLAG_CONTAINS_FOOTER (1 << 30)
|
||||||
|
#define APE_TAG_FLAG_IS_HEADER (1 << 29)
|
||||||
|
|
||||||
|
#define APE_TAG_FLAGS_DEFAULT (APE_TAG_FLAG_CONTAINS_FOOTER)
|
||||||
|
|
||||||
|
/*****************************************************************************************
|
||||||
|
Tag field flags
|
||||||
|
*****************************************************************************************/
|
||||||
|
#define TAG_FIELD_FLAG_READ_ONLY (1 << 0)
|
||||||
|
|
||||||
|
#define TAG_FIELD_FLAG_DATA_TYPE_MASK (6)
|
||||||
|
#define TAG_FIELD_FLAG_DATA_TYPE_TEXT_UTF8 (0 << 1)
|
||||||
|
#define TAG_FIELD_FLAG_DATA_TYPE_BINARY (1 << 1)
|
||||||
|
#define TAG_FIELD_FLAG_DATA_TYPE_EXTERNAL_INFO (2 << 1)
|
||||||
|
#define TAG_FIELD_FLAG_DATA_TYPE_RESERVED (3 << 1)
|
||||||
|
|
||||||
|
/*****************************************************************************************
|
||||||
|
The footer at the end of APE tagged files (can also optionally be at the front of the tag)
|
||||||
|
*****************************************************************************************/
|
||||||
|
#define APE_TAG_FOOTER_BYTES 32
|
||||||
|
|
||||||
|
//------------------------
|
||||||
|
|
||||||
|
@implementation ApeTagItem
|
||||||
|
+createTag:(NSString*)t flags:(SInt32)f data:(NSData*)d{
|
||||||
|
return [[ApeTagItem alloc] initTag:t flags:f data:d];
|
||||||
|
}
|
||||||
|
|
||||||
|
-initTag:(NSString*)t flags:(SInt32)f data:(NSData*)d{
|
||||||
|
self = [super init];
|
||||||
|
if (self)
|
||||||
|
{
|
||||||
|
tag = [t copy];
|
||||||
|
data = [d copy];
|
||||||
|
flags = f;
|
||||||
|
}
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
|
-(NSData*) pack {
|
||||||
|
//item header:
|
||||||
|
NSMutableData* d = [NSMutableData dataWithCapacity:8];
|
||||||
|
UInt32 len = CFSwapInt32HostToLittle([data length]);
|
||||||
|
UInt32 flags1 = CFSwapInt32HostToLittle(flags); // ApeTagv1 does not use this, 0 for v2 means only footer and all fields text in utf8 - just right what we want
|
||||||
|
|
||||||
|
[d appendBytes:&len length:4]; // lenth of value
|
||||||
|
[d appendBytes:&flags1 length:4]; // 32 bits of flags
|
||||||
|
[d appendData:[tag dataUsingEncoding: NSUTF8StringEncoding]]; // item tag
|
||||||
|
char c = 0; [d appendBytes:&c length:1]; // 0x00 separator after tag
|
||||||
|
[d appendData:data]; // item value
|
||||||
|
return d;
|
||||||
|
}
|
||||||
|
|
||||||
|
-(bool) isString { //returns whether data is UTF-8 string(or implicitly can be converted to)
|
||||||
|
return (flags & TAG_FIELD_FLAG_DATA_TYPE_MASK) == TAG_FIELD_FLAG_DATA_TYPE_TEXT_UTF8;
|
||||||
|
}
|
||||||
|
-(NSString*) getString { //returns string, if is not string - this is error, check isString before
|
||||||
|
if ([self isString]) return [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
-(NSString*) tag { return tag; }
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
@implementation ApeTag
|
||||||
|
+(id)create { return [[ApeTag alloc] init];}
|
||||||
|
+(id)createFromFileRead:(NSFileHandle*)f { return [[ApeTag alloc] initFromFileRead:f]; }
|
||||||
|
|
||||||
|
-(id)init {
|
||||||
|
self = [super init];
|
||||||
|
if (self)
|
||||||
|
{
|
||||||
|
fields = [NSMutableArray array];
|
||||||
|
}
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
|
-(id)initFromFileRead:(NSFileHandle*)f {
|
||||||
|
self = [super init];
|
||||||
|
if(self)
|
||||||
|
{
|
||||||
|
fields = [NSMutableArray array];
|
||||||
|
if (![self read:f])
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
|
-(void) addField:(NSString*)f text:(NSString*)t {
|
||||||
|
[fields addObject:[ApeTagItem createTag:f flags:(TAG_FIELD_FLAG_DATA_TYPE_TEXT_UTF8) data:[t dataUsingEncoding: NSUTF8StringEncoding]]];
|
||||||
|
}
|
||||||
|
|
||||||
|
-(NSArray*) fields { return fields; }
|
||||||
|
|
||||||
|
-(NSDictionary*) convertToCogTag {
|
||||||
|
NSLog(@"Converting ape tag to cog tag");
|
||||||
|
NSMutableDictionary* d = [NSMutableDictionary dictionaryWithCapacity:6];
|
||||||
|
NSEnumerator *e = [fields objectEnumerator];
|
||||||
|
ApeTagItem* item;
|
||||||
|
int n = 0;
|
||||||
|
while ((item = [e nextObject]) != nil) {
|
||||||
|
if (![[item tag] compare:APE_TAG_FIELD_ARTIST]) { [d setObject:[item getString] forKey:@"artist"]; n++;}
|
||||||
|
if (![[item tag] compare:APE_TAG_FIELD_ALBUM]) {[d setObject:[item getString] forKey:@"album"]; n++;}
|
||||||
|
if (![[item tag] compare:APE_TAG_FIELD_TITLE]) {[d setObject:[item getString] forKey:@"title"]; n++;}
|
||||||
|
if (![[item tag] compare:APE_TAG_FIELD_TRACK]) {[d setObject:[item getString] forKey:@"track"]; n++;}
|
||||||
|
if (![[item tag] compare:APE_TAG_FIELD_GENRE]) {[d setObject:[item getString] forKey:@"genre"]; n++;}
|
||||||
|
if (![[item tag] compare:APE_TAG_FIELD_YEAR]) {[d setObject:[item getString] forKey:@"year"]; n++;}
|
||||||
|
}
|
||||||
|
if (n)
|
||||||
|
return d;
|
||||||
|
[d release]; d = nil;
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
|
||||||
|
-(NSData*) pack {
|
||||||
|
int len = 0, num = 0;
|
||||||
|
NSMutableData* d = [NSMutableData dataWithCapacity:8];
|
||||||
|
NSEnumerator *e = [fields objectEnumerator];
|
||||||
|
id item;
|
||||||
|
while ((item = [e nextObject]) != nil)
|
||||||
|
{
|
||||||
|
NSData* i = [item pack];
|
||||||
|
[d appendData:i];
|
||||||
|
len += [i length];
|
||||||
|
num++;
|
||||||
|
}
|
||||||
|
UInt32 version = CFSwapInt32HostToLittle(CURRENT_APE_TAG_VERSION);
|
||||||
|
UInt32 size = CFSwapInt32HostToLittle(len + APE_TAG_FOOTER_BYTES);
|
||||||
|
UInt32 count = CFSwapInt32HostToLittle(num);
|
||||||
|
UInt32 flags = CFSwapInt32HostToLittle(APE_TAG_FLAGS_DEFAULT);
|
||||||
|
[d appendBytes:"APETAGEX" length:8];
|
||||||
|
[d appendBytes:&version length:4];
|
||||||
|
[d appendBytes:&size length:4];
|
||||||
|
[d appendBytes:&count length:4];
|
||||||
|
[d appendBytes:&flags length:4];
|
||||||
|
[d appendBytes:"\0\0\0\0\0\0\0\0" length:8]; //reserved
|
||||||
|
return d;
|
||||||
|
}
|
||||||
|
|
||||||
|
-(void) write:(NSFileHandle*)file {
|
||||||
|
[file writeData:[self pack]];
|
||||||
|
}
|
||||||
|
|
||||||
|
-(NSString*) readToNull:(NSFileHandle*)f { //!!!
|
||||||
|
NSMutableData* d = [NSMutableData dataWithCapacity:100]; //it will grow, here should be most expected value (may gain few nanosecond from it =) )
|
||||||
|
while(true) {
|
||||||
|
NSData* byte = [f readDataOfLength:1];
|
||||||
|
if (!byte)
|
||||||
|
{
|
||||||
|
[f seekToFileOffset:0-[d length]];
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
if (*((const char*)[byte bytes]) == 0) break;
|
||||||
|
[d appendData:byte];
|
||||||
|
}
|
||||||
|
NSString* s = [[NSString alloc] initWithData:d encoding:NSUTF8StringEncoding]; //!handle encoding error (in case binary data starts not from newline, impossible on real apl, but who knows...)
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
-(bool) read:(NSFileHandle*)f { //reads from file, returns true on success
|
||||||
|
|
||||||
|
//reading from file erases previous data:
|
||||||
|
[fields removeAllObjects];
|
||||||
|
|
||||||
|
//!! prefix header may be present and we should read it but lazyness...
|
||||||
|
NSString* header = @"APETAGEX";
|
||||||
|
NSData* check = [f readDataOfLength:[header length]];
|
||||||
|
[f seekToFileOffset:([f offsetInFile]-[check length])];
|
||||||
|
if (check && [[[NSString alloc] initWithData:check encoding:NSASCIIStringEncoding] isEqualToString:header]) {
|
||||||
|
NSLog(@"Reading of prefix header not implemented");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
//read fields and store 'em
|
||||||
|
while(true) {
|
||||||
|
NSData* check = [f readDataOfLength:[header length]];
|
||||||
|
[f seekToFileOffset:([f offsetInFile]-[check length])];
|
||||||
|
if (check && [[[NSString alloc] initWithData:check encoding:NSASCIIStringEncoding] isEqualToString:header]) break; // reached footer
|
||||||
|
|
||||||
|
NSData* f_len = [f readDataOfLength:4];
|
||||||
|
NSData* f_flag = [f readDataOfLength:4];
|
||||||
|
NSString* f_name = [self readToNull:f];
|
||||||
|
UInt32 len = CFSwapInt32LittleToHost(*(uint32_t*)[f_len bytes]);
|
||||||
|
UInt32 flags = CFSwapInt32LittleToHost(*(uint32_t*)[f_flag bytes]);
|
||||||
|
NSData* data = [f readDataOfLength:len];
|
||||||
|
ApeTagItem* item = [ApeTagItem createTag:f_name flags:flags data:data];
|
||||||
|
NSLog(@"Read tag '%@'='%@'", [item tag], [item getString]);
|
||||||
|
[fields addObject:item];
|
||||||
|
}
|
||||||
|
//here we should read footer and check number of fields etc. - but who cares? =)
|
||||||
|
// just clean up file pointer:
|
||||||
|
[f readDataOfLength:APE_TAG_FOOTER_BYTES];
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
|
@ -0,0 +1,26 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
|
<string>English</string>
|
||||||
|
<key>CFBundleExecutable</key>
|
||||||
|
<string>${EXECUTABLE_NAME}</string>
|
||||||
|
<key>CFBundleName</key>
|
||||||
|
<string>${PRODUCT_NAME}</string>
|
||||||
|
<key>CFBundleIconFile</key>
|
||||||
|
<string></string>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>com.vasfed.cog.apl</string>
|
||||||
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
|
<string>6.0</string>
|
||||||
|
<key>CFBundlePackageType</key>
|
||||||
|
<string>BNDL</string>
|
||||||
|
<key>CFBundleSignature</key>
|
||||||
|
<string>????</string>
|
||||||
|
<key>CFBundleVersion</key>
|
||||||
|
<string>1.0</string>
|
||||||
|
<key>NSPrincipalClass</key>
|
||||||
|
<string></string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
|
@ -181,6 +181,9 @@
|
||||||
NSEnumerator *e = [[[[NSClassFromString(@"PluginController") sharedPluginController] decodersByExtension] allKeys] objectEnumerator];
|
NSEnumerator *e = [[[[NSClassFromString(@"PluginController") sharedPluginController] decodersByExtension] allKeys] objectEnumerator];
|
||||||
while (ext = [e nextObject])
|
while (ext = [e nextObject])
|
||||||
{
|
{
|
||||||
|
if ([ext isEqualToString:@"cue"])
|
||||||
|
continue;
|
||||||
|
|
||||||
NSMutableString* newURL = [originalURL mutableCopy];
|
NSMutableString* newURL = [originalURL mutableCopy];
|
||||||
[newURL replaceOccurrencesOfString:@"wav" withString:ext options:(NSAnchoredSearch | NSBackwardsSearch) range:NSMakeRange(0, [newURL length])];
|
[newURL replaceOccurrencesOfString:@"wav" withString:ext options:(NSAnchoredSearch | NSBackwardsSearch) range:NSMakeRange(0, [newURL length])];
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue