From 1be9429281d7eb7a0cae509b23ed4482768a68f1 Mon Sep 17 00:00:00 2001 From: Thomas Grill Date: Thu, 16 Dec 2004 05:02:25 +0000 Subject: - made xcode project - fixed loop record bug - some small cleanups svn path=/trunk/; revision=2391 --- externals/grill/xsample/readme.txt | 5 + externals/grill/xsample/source/groove.cpp | 9 +- externals/grill/xsample/source/inter.cpp | 6 - externals/grill/xsample/source/main.h | 12 +- externals/grill/xsample/source/prefix.h | 14 + externals/grill/xsample/source/record.cpp | 15 +- externals/grill/xsample/source/xsample-Info.plist | 22 + .../grill/xsample/xsample.xcode/project.pbxproj | 599 +++++++++++++++++++++ 8 files changed, 657 insertions(+), 25 deletions(-) create mode 100644 externals/grill/xsample/source/prefix.h create mode 100644 externals/grill/xsample/source/xsample-Info.plist create mode 100644 externals/grill/xsample/xsample.xcode/project.pbxproj (limited to 'externals/grill/xsample') diff --git a/externals/grill/xsample/readme.txt b/externals/grill/xsample/readme.txt index b8bb2893..777453b5 100644 --- a/externals/grill/xsample/readme.txt +++ b/externals/grill/xsample/readme.txt @@ -83,6 +83,8 @@ pd - OSX: o GCC: edit "config-pd-darwin.txt" and run "sh ./build-pd-darwin.sh" > various versions of GCC die during compile with template optimization turned on +o XCode: use "xsample.xcode" project + Max/MSP - MacOS9: ---------------- o Metrowerks CodeWarrior: "xsample.cw" project file @@ -93,6 +95,8 @@ Max/MSP - MacOSX: ---------------- o Metrowerks CodeWarrior: "xsample.cw" project file +o XCode: use "xsample.xcode" project + Max/MSP - Windows: ---------------- o Microsoft Visual C++ 6 or .NET command line: edit "config-max-msvc.txt" and run "build-max-msvc.bat" @@ -121,6 +125,7 @@ Version history: - fixed buggy sampling in crossfade zones (and simplified it a lot) - different initialization on buffer absence - renew units and scalemode on buffer change +- fixed looped recording bug (thanks to Tatama Suomo) 0.3.0: - added resources to MaxMSP build diff --git a/externals/grill/xsample/source/groove.cpp b/externals/grill/xsample/source/groove.cpp index a3f2ed02..341d241f 100644 --- a/externals/grill/xsample/source/groove.cpp +++ b/externals/grill/xsample/source/groove.cpp @@ -197,11 +197,11 @@ V xgroove::setup(t_classid c) } xgroove::xgroove(I argc,const t_atom *argv): - loopmode(xsl_loop),curpos(0), - _xzone(0),xzone(0),pblksz(0), + loopmode(xsl_loop),curpos(0),bidir(1), + _xzone(0),xzone(0), xfade(xsf_keeplooppos),xshape(xss_lin), - znidx(NULL),znpos(NULL), - bidir(1) + znpos(NULL),znmul(NULL),znidx(NULL), + pblksz(0) { I argi = 0; #if FLEXT_SYS == FLEXT_SYS_MAX @@ -867,6 +867,7 @@ V xgroove::s_dsp() case xsl_bidir: SETSIGFUN(posfun,SIGFUN(s_pos_bidir)); break; + default: ; // just to prevent warning } } else diff --git a/externals/grill/xsample/source/inter.cpp b/externals/grill/xsample/source/inter.cpp index 3490044a..fe63fce8 100644 --- a/externals/grill/xsample/source/inter.cpp +++ b/externals/grill/xsample/source/inter.cpp @@ -24,12 +24,6 @@ void xinter::setup(t_classid c) FLEXT_CADDATTR_VAR_E(c,"interp",interp,m_interp); } -xinter::xinter(): - doplay(false),outchns(1), - interp(xsi_4p) -{ -} - I xinter::m_set(I argc,const t_atom *argv) { I r = xsample::m_set(argc,argv); diff --git a/externals/grill/xsample/source/main.h b/externals/grill/xsample/source/main.h index c6511139..3608a55c 100644 --- a/externals/grill/xsample/source/main.h +++ b/externals/grill/xsample/source/main.h @@ -11,18 +11,14 @@ WARRANTIES, see the file, "license.txt," in this distribution. #ifndef __XSAMPLE_H #define __XSAMPLE_H - -#define XSAMPLE_VERSION "0.3.1pre3" - - -#define FLEXT_ATTRIBUTES 1 - -#include +#include "prefix.h" #if !defined(FLEXT_VERSION) || (FLEXT_VERSION < 406) #error You need at least flext version 0.4.6 #endif +#define XSAMPLE_VERSION "0.3.1pre3" + // most compilers are somehow broken - in other words - can't handle all C++ features @@ -295,7 +291,7 @@ class xinter: FLEXT_HEADER_S(xinter,xsample,setup) public: - xinter(); + xinter(): outchns(1),doplay(false),interp(xsi_4p) {} protected: virtual I m_set(I argc,const t_atom *argv); diff --git a/externals/grill/xsample/source/prefix.h b/externals/grill/xsample/source/prefix.h new file mode 100644 index 00000000..ef9cb7ea --- /dev/null +++ b/externals/grill/xsample/source/prefix.h @@ -0,0 +1,14 @@ +/* + +xsample - extended sample objects for Max/MSP and pd (pure data) + +Copyright (c) 2001-2004 Thomas Grill (xovo@gmx.net) +For information on usage and redistribution, and for a DISCLAIMER OF ALL +WARRANTIES, see the file, "license.txt," in this distribution. + +*/ + +#define FLEXT_ATTRIBUTES 1 + +#include + diff --git a/externals/grill/xsample/source/record.cpp b/externals/grill/xsample/source/record.cpp index f297b04c..a30f87cb 100644 --- a/externals/grill/xsample/source/record.cpp +++ b/externals/grill/xsample/source/record.cpp @@ -108,11 +108,11 @@ V xrecord::setup(t_classid c) } xrecord::xrecord(I argc,const t_atom *argv): - dorec(false), - sigmode(false),mixmode(0), - appmode(true),doloop(false), + inchns(1), + sigmode(false),appmode(true), drintv(0), - inchns(1) + dorec(false),doloop(false), + mixmode(0) { I argi = 0; #if FLEXT_SYS == FLEXT_SYS_MAX @@ -394,8 +394,9 @@ TMPLDEF V xrecord::s_rec(I n,S *const *invecs,S *const *outvecs) case 0: { for(int ci = 0; ci < ICHNS; ++ci) { register S *b = bf+ci; - register const F *s = sig[ci]; - for(i = 0; i < ncur; ++i,b += BCHNS,++s) *b = *s; + register const F *s = sig[ci]+si; + for(i = 0; i < ncur; ++i,b += BCHNS,++s) + *b = *s; } si += ncur; break; @@ -412,7 +413,7 @@ TMPLDEF V xrecord::s_rec(I n,S *const *invecs,S *const *outvecs) case 2: { for(int ci = 0; ci < ICHNS; ++ci) { register S *b = bf+ci; - register const F *s = sig[ci]; + register const F *s = sig[ci]+si; for(i = 0; i < ncur; ++i,b += BCHNS,++s) *b += *s; } si += ncur; diff --git a/externals/grill/xsample/source/xsample-Info.plist b/externals/grill/xsample/source/xsample-Info.plist new file mode 100644 index 00000000..e9dd72e1 --- /dev/null +++ b/externals/grill/xsample/source/xsample-Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + xsample + CFBundleIdentifier + org.grrrr.xsample + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + APPL + CFBundleSignature + ???? + CFBundleVersion + 1.0 + CSResourcesFileMapped + yes + + diff --git a/externals/grill/xsample/xsample.xcode/project.pbxproj b/externals/grill/xsample/xsample.xcode/project.pbxproj new file mode 100644 index 00000000..c9df035c --- /dev/null +++ b/externals/grill/xsample/xsample.xcode/project.pbxproj @@ -0,0 +1,599 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 39; + objects = { + 034768DDFF38A45A11DB9C8B = { + children = ( + D2AAC09D05546B4700DB518D, + E9974E53077083C700206F68, + ); + isa = PBXGroup; + name = Products; + refType = 4; + sourceTree = ""; + }; +//030 +//031 +//032 +//033 +//034 +//080 +//081 +//082 +//083 +//084 + 0867D690FE84028FC02AAC07 = { + buildSettings = { + }; + buildStyles = ( + 4F0BB7EC011F40E904CA0E50, + 4F0BB7ED011F40E904CA0E50, + ); + hasScannedForEncodings = 1; + isa = PBXProject; + mainGroup = 0867D691FE84028FC02AAC07; + productRefGroup = 034768DDFF38A45A11DB9C8B; + projectDirPath = ""; + targets = ( + D2AAC09C05546B4700DB518D, + E9974E52077083C700206F68, + ); + }; + 0867D691FE84028FC02AAC07 = { + children = ( + E9974EC507708CFA00206F68, + 08FB77ACFE841707C02AAC07, + 0867D69AFE84028FC02AAC07, + 034768DDFF38A45A11DB9C8B, + ); + isa = PBXGroup; + name = xsample; + refType = 4; + sourceTree = ""; + }; + 0867D69AFE84028FC02AAC07 = { + children = ( + E9974E060770761500206F68, + E9974E04077075E800206F68, + E9974DFA0770750400206F68, + E9974DFB0770750400206F68, + ); + isa = PBXGroup; + name = "External Frameworks and Libraries"; + refType = 4; + sourceTree = ""; + }; + 08FB77ACFE841707C02AAC07 = { + children = ( + E9974EAF07708BF700206F68, + E9974E58077084DA00206F68, + E9974E2B07707D1400206F68, + E9974DE50770749400206F68, + E9974DE60770749400206F68, + E9974DE70770749400206F68, + E9974DE80770749400206F68, + E9974DE90770749400206F68, + E9974DEA0770749400206F68, + E9974DEB0770749400206F68, + ); + isa = PBXGroup; + name = Source; + refType = 4; + sourceTree = ""; + }; +//080 +//081 +//082 +//083 +//084 +//4F0 +//4F1 +//4F2 +//4F3 +//4F4 + 4F0BB7EC011F40E904CA0E50 = { + buildSettings = { + COPY_PHASE_STRIP = NO; + DEBUGGING_SYMBOLS = YES; + GCC_ALTIVEC_EXTENSIONS = YES; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = source/prefix.h; + OPTIMIZATION_CFLAGS = "-O0"; + ZERO_LINK = YES; + }; + isa = PBXBuildStyle; + name = Development; + }; + 4F0BB7ED011F40E904CA0E50 = { + buildSettings = { + COPY_PHASE_STRIP = YES; + GCC_ALTIVEC_EXTENSIONS = YES; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = source/prefix.h; + ZERO_LINK = NO; + }; + isa = PBXBuildStyle; + name = Deployment; + }; +//4F0 +//4F1 +//4F2 +//4F3 +//4F4 +//D20 +//D21 +//D22 +//D23 +//D24 + D2AAC09905546B4700DB518D = { + buildActionMask = 2147483647; + files = ( + E9974DF50770749400206F68, + E9974DF70770749400206F68, + E9974E2D07707D1400206F68, + ); + isa = PBXHeadersBuildPhase; + runOnlyForDeploymentPostprocessing = 0; + }; + D2AAC09A05546B4700DB518D = { + buildActionMask = 2147483647; + files = ( + E9974DF30770749400206F68, + E9974DF40770749400206F68, + E9974DF60770749400206F68, + E9974DF80770749400206F68, + E9974DF90770749400206F68, + ); + isa = PBXSourcesBuildPhase; + runOnlyForDeploymentPostprocessing = 0; + }; + D2AAC09B05546B4700DB518D = { + buildActionMask = 2147483647; + files = ( + E9974E05077075E800206F68, + ); + isa = PBXFrameworksBuildPhase; + runOnlyForDeploymentPostprocessing = 0; + }; + D2AAC09C05546B4700DB518D = { + buildPhases = ( + D2AAC09905546B4700DB518D, + D2AAC09B05546B4700DB518D, + D2AAC09A05546B4700DB518D, + ); + buildRules = ( + ); + buildSettings = { + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + EXECUTABLE_EXTENSION = pd_darwin; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_PREPROCESSOR_DEFINITIONS = "FLEXT_SYS=2"; + HEADER_SEARCH_PATHS = "$(PD)/src $(Flext)/source"; + INSTALL_PATH = "$(PD)/extra"; + LIBRARY_SEARCH_PATHS = "$(Flext)/build"; + LIBRARY_STYLE = BUNDLE; + OTHER_LDFLAGS = "-bundle_loader $(PD)/bin/pd"; + PRODUCT_NAME = xsample; + }; + dependencies = ( + ); + isa = PBXNativeTarget; + name = "pd static"; + productName = xsample; + productReference = D2AAC09D05546B4700DB518D; + productType = "com.apple.product-type.library.dynamic"; + }; + D2AAC09D05546B4700DB518D = { + explicitFileType = "compiled.mach-o.dylib"; + includeInIndex = 0; + isa = PBXFileReference; + path = xsample.pd_darwin; + refType = 3; + sourceTree = BUILT_PRODUCTS_DIR; + }; +//D20 +//D21 +//D22 +//D23 +//D24 +//E90 +//E91 +//E92 +//E93 +//E94 + E9974DE50770749400206F68 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + name = groove.cpp; + path = source/groove.cpp; + refType = 4; + sourceTree = ""; + }; + E9974DE60770749400206F68 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + name = inter.cpp; + path = source/inter.cpp; + refType = 4; + sourceTree = ""; + }; + E9974DE70770749400206F68 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = inter.h; + path = source/inter.h; + refType = 4; + sourceTree = ""; + }; + E9974DE80770749400206F68 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + name = main.cpp; + path = source/main.cpp; + refType = 4; + sourceTree = ""; + }; + E9974DE90770749400206F68 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = main.h; + path = source/main.h; + refType = 4; + sourceTree = ""; + }; + E9974DEA0770749400206F68 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + name = play.cpp; + path = source/play.cpp; + refType = 4; + sourceTree = ""; + }; + E9974DEB0770749400206F68 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + name = record.cpp; + path = source/record.cpp; + refType = 4; + sourceTree = ""; + }; + E9974DF30770749400206F68 = { + fileRef = E9974DE50770749400206F68; + isa = PBXBuildFile; + settings = { + }; + }; + E9974DF40770749400206F68 = { + fileRef = E9974DE60770749400206F68; + isa = PBXBuildFile; + settings = { + }; + }; + E9974DF50770749400206F68 = { + fileRef = E9974DE70770749400206F68; + isa = PBXBuildFile; + settings = { + }; + }; + E9974DF60770749400206F68 = { + fileRef = E9974DE80770749400206F68; + isa = PBXBuildFile; + settings = { + }; + }; + E9974DF70770749400206F68 = { + fileRef = E9974DE90770749400206F68; + isa = PBXBuildFile; + settings = { + }; + }; + E9974DF80770749400206F68 = { + fileRef = E9974DEA0770749400206F68; + isa = PBXBuildFile; + settings = { + }; + }; + E9974DF90770749400206F68 = { + fileRef = E9974DEB0770749400206F68; + isa = PBXBuildFile; + settings = { + }; + }; + E9974DFA0770750400206F68 = { + isa = PBXFileReference; + lastKnownFileType = wrapper.framework; + name = MaxAPI.framework; + path = /Library/Frameworks/MaxAPI.framework; + refType = 0; + sourceTree = ""; + }; + E9974DFB0770750400206F68 = { + isa = PBXFileReference; + lastKnownFileType = wrapper.framework; + name = MaxAudioAPI.framework; + path = /Library/Frameworks/MaxAudioAPI.framework; + refType = 0; + sourceTree = ""; + }; + E9974E04077075E800206F68 = { + isa = PBXFileReference; + lastKnownFileType = archive.ar; + name = libflext_s.a; + path = /Volumes/Daten/Prog/pdmax/flext/build/libflext_s.a; + refType = 0; + sourceTree = ""; + }; + E9974E05077075E800206F68 = { + fileRef = E9974E04077075E800206F68; + isa = PBXBuildFile; + settings = { + }; + }; + E9974E060770761500206F68 = { + isa = PBXFileReference; + lastKnownFileType = archive.ar; + name = "libflext-max_s.a"; + path = "/Volumes/Daten/Prog/pdmax/flext/build/libflext-max_s.a"; + refType = 0; + sourceTree = ""; + }; + E9974E2B07707D1400206F68 = { + fileEncoding = 4; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = prefix.h; + path = source/prefix.h; + refType = 4; + sourceTree = ""; + }; + E9974E2D07707D1400206F68 = { + fileRef = E9974E2B07707D1400206F68; + isa = PBXBuildFile; + settings = { + }; + }; + E9974E4F077083C700206F68 = { + buildActionMask = 2147483647; + files = ( + E9974E59077084DA00206F68, + E9974EB007708BF700206F68, + ); + isa = PBXResourcesBuildPhase; + runOnlyForDeploymentPostprocessing = 0; + }; + E9974E50077083C700206F68 = { + buildActionMask = 2147483647; + files = ( + E9974E5E0770852000206F68, + E9974E5F0770852000206F68, + E9974E600770852000206F68, + E9974E610770852000206F68, + E9974E620770852000206F68, + E9974E630770852000206F68, + E9974E640770852000206F68, + E9974E650770852000206F68, + ); + isa = PBXSourcesBuildPhase; + runOnlyForDeploymentPostprocessing = 0; + }; + E9974E51077083C700206F68 = { + buildActionMask = 2147483647; + files = ( + E9974E5C0770851700206F68, + E9974E5B0770851500206F68, + E9974E5A0770851200206F68, + ); + isa = PBXFrameworksBuildPhase; + runOnlyForDeploymentPostprocessing = 0; + }; + E9974E52077083C700206F68 = { + buildPhases = ( + E9974E4F077083C700206F68, + E9974E50077083C700206F68, + E9974E51077083C700206F68, + E9974EC207708C9300206F68, + ); + buildRules = ( + ); + buildSettings = { + GCC_PREPROCESSOR_DEFINITIONS = "FLEXT_SYS=1"; + HEADER_SEARCH_PATHS = "$(Max SDK)/max-includes $(Max SDK)/msp-includes $(Flext)/source"; + INFOPLIST_FILE = "source/xsample-Info.plist"; + INSTALL_PATH = "\"/Library/Application Support/Cycling '74/externals\""; + LIBRARY_SEARCH_PATHS = "$(Flext)/build"; + LIBRARY_STYLE = DYNAMIC; + OPTIMIZATION_CFLAGS = ""; + OTHER_CFLAGS = ""; + OTHER_REZFLAGS = ""; + PRODUCT_NAME = xsample; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = "-Wmost -Wno-four-char-constants -Wno-unknown-pragmas"; + WRAPPER_EXTENSION = mxo; + }; + dependencies = ( + ); + isa = PBXNativeTarget; + name = "max static"; + productName = "Max xsample static"; + productReference = E9974E53077083C700206F68; + productSettingsXML = " + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + Max xsample static + CFBundleIdentifier + com.yourcompany.Max_xsample_static + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + APPL + CFBundleSignature + ???? + CFBundleVersion + 1.0 + CSResourcesFileMapped + yes + + +"; + productType = "com.apple.product-type.bundle"; + }; + E9974E53077083C700206F68 = { + explicitFileType = wrapper.cfbundle; + includeInIndex = 0; + isa = PBXFileReference; + path = xsample.mxo; + refType = 3; + sourceTree = BUILT_PRODUCTS_DIR; + }; + E9974E58077084DA00206F68 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = text.xml; + name = "xsample-Info.plist"; + path = "source/xsample-Info.plist"; + refType = 4; + sourceTree = ""; + }; + E9974E59077084DA00206F68 = { + fileRef = E9974E58077084DA00206F68; + isa = PBXBuildFile; + settings = { + }; + }; + E9974E5A0770851200206F68 = { + fileRef = E9974E060770761500206F68; + isa = PBXBuildFile; + settings = { + }; + }; + E9974E5B0770851500206F68 = { + fileRef = E9974DFA0770750400206F68; + isa = PBXBuildFile; + settings = { + }; + }; + E9974E5C0770851700206F68 = { + fileRef = E9974DFB0770750400206F68; + isa = PBXBuildFile; + settings = { + }; + }; + E9974E5E0770852000206F68 = { + fileRef = E9974E2B07707D1400206F68; + isa = PBXBuildFile; + settings = { + }; + }; + E9974E5F0770852000206F68 = { + fileRef = E9974DE50770749400206F68; + isa = PBXBuildFile; + settings = { + }; + }; + E9974E600770852000206F68 = { + fileRef = E9974DE60770749400206F68; + isa = PBXBuildFile; + settings = { + }; + }; + E9974E610770852000206F68 = { + fileRef = E9974DE70770749400206F68; + isa = PBXBuildFile; + settings = { + }; + }; + E9974E620770852000206F68 = { + fileRef = E9974DE80770749400206F68; + isa = PBXBuildFile; + settings = { + }; + }; + E9974E630770852000206F68 = { + fileRef = E9974DE90770749400206F68; + isa = PBXBuildFile; + settings = { + }; + }; + E9974E640770852000206F68 = { + fileRef = E9974DEA0770749400206F68; + isa = PBXBuildFile; + settings = { + }; + }; + E9974E650770852000206F68 = { + fileRef = E9974DEB0770749400206F68; + isa = PBXBuildFile; + settings = { + }; + }; + E9974EAF07708BF700206F68 = { + isa = PBXFileReference; + lastKnownFileType = archive.rsrc; + name = xsample.rsrc; + path = source/xsample.rsrc; + refType = 4; + sourceTree = ""; + }; + E9974EB007708BF700206F68 = { + fileRef = E9974EAF07708BF700206F68; + isa = PBXBuildFile; + settings = { + }; + }; + E9974EC207708C9300206F68 = { + buildActionMask = 8; + dstPath = "/Library/Application Support/Cycling '74/init"; + dstSubfolderSpec = 0; + files = ( + E9974EC607708D0C00206F68, + ); + isa = PBXCopyFilesBuildPhase; + runOnlyForDeploymentPostprocessing = 1; + }; + E9974EC307708CED00206F68 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = text; + name = "xsample-objectmappings.txt"; + path = "maxmsp/xsample-objectmappings.txt"; + refType = 4; + sourceTree = ""; + }; + E9974EC507708CFA00206F68 = { + children = ( + E9974EC307708CED00206F68, + ); + isa = PBXGroup; + name = Max; + refType = 4; + sourceTree = ""; + }; + E9974EC607708D0C00206F68 = { + fileRef = E9974EC307708CED00206F68; + isa = PBXBuildFile; + settings = { + }; + }; + }; + rootObject = 0867D690FE84028FC02AAC07; +} -- cgit v1.2.1