move iOS demo project to iOS folder

This commit is contained in:
Ariel Elkin
2014-03-14 18:07:53 +00:00
parent b5e24dec52
commit b7cbce0ced
22 changed files with 64 additions and 49 deletions

10
iOS/Demo/README.MD Normal file
View File

@@ -0,0 +1,10 @@
##iOS Demo Xcode project
This project briefly shows how to manually integrate the STK static library into an Xcode project. See the **README** file in the STK's `iOS` directory for precise instructions.
Currently, this project does not output sound, it only shows how to generate audio samples from the STK classes within an iOS project, and how to control STK objects via UI controls.
Note the following:
* ViewController needs to be renamed with the **.mm** extension as it's importing STK files, which are C++.
* The header search paths in the *Build Settings* of **iOS Demo.xcodeproj** point to `../../include/` because the STK's `include` directory is two directories up relative to it.

View File

@@ -0,0 +1,524 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
B02FD53618C520D60009ECA9 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B02FD53518C520D60009ECA9 /* Foundation.framework */; };
B02FD53818C520D60009ECA9 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B02FD53718C520D60009ECA9 /* CoreGraphics.framework */; };
B02FD53A18C520D60009ECA9 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B02FD53918C520D60009ECA9 /* UIKit.framework */; };
B02FD54018C520D60009ECA9 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = B02FD53E18C520D60009ECA9 /* InfoPlist.strings */; };
B02FD54218C520D60009ECA9 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = B02FD54118C520D60009ECA9 /* main.m */; };
B02FD54618C520D60009ECA9 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = B02FD54518C520D60009ECA9 /* AppDelegate.m */; };
B02FD54818C520D60009ECA9 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B02FD54718C520D60009ECA9 /* Images.xcassets */; };
B02FD54F18C520D70009ECA9 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B02FD54E18C520D70009ECA9 /* XCTest.framework */; };
B02FD55018C520D70009ECA9 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B02FD53518C520D60009ECA9 /* Foundation.framework */; };
B02FD55118C520D70009ECA9 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B02FD53918C520D60009ECA9 /* UIKit.framework */; };
B02FD55918C520D70009ECA9 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = B02FD55718C520D70009ECA9 /* InfoPlist.strings */; };
B02FD55B18C520D70009ECA9 /* iOS_DemoTests.m in Sources */ = {isa = PBXBuildFile; fileRef = B02FD55A18C520D70009ECA9 /* iOS_DemoTests.m */; };
B02FD57018C521560009ECA9 /* ViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = B02FD56F18C521560009ECA9 /* ViewController.mm */; };
B0779A8718D376F5004DA9B7 /* libSTK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B0779A8418D376A6004DA9B7 /* libSTK.a */; };
B0779A8B18D37C13004DA9B7 /* rawwaves.bundle in Resources */ = {isa = PBXBuildFile; fileRef = B0779A8618D376A6004DA9B7 /* rawwaves.bundle */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
B02FD55218C520D70009ECA9 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = B02FD52A18C520D60009ECA9 /* Project object */;
proxyType = 1;
remoteGlobalIDString = B02FD53118C520D60009ECA9;
remoteInfo = "iOS Demo";
};
B0779A8318D376A6004DA9B7 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = B0779A7E18D376A5004DA9B7 /* STK.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = B0AC5BEE18CB31DE00D860C0;
remoteInfo = STK;
};
B0779A8518D376A6004DA9B7 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = B0779A7E18D376A5004DA9B7 /* STK.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = B0EC33B718CB73A70005787B;
remoteInfo = rawwaves;
};
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
B02FD53218C520D60009ECA9 /* iOS Demo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "iOS Demo.app"; sourceTree = BUILT_PRODUCTS_DIR; };
B02FD53518C520D60009ECA9 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
B02FD53718C520D60009ECA9 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
B02FD53918C520D60009ECA9 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
B02FD53D18C520D60009ECA9 /* iOS Demo-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "iOS Demo-Info.plist"; sourceTree = "<group>"; };
B02FD53F18C520D60009ECA9 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
B02FD54118C520D60009ECA9 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
B02FD54318C520D60009ECA9 /* iOS Demo-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "iOS Demo-Prefix.pch"; sourceTree = "<group>"; };
B02FD54418C520D60009ECA9 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
B02FD54518C520D60009ECA9 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
B02FD54718C520D60009ECA9 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
B02FD54D18C520D70009ECA9 /* iOS DemoTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "iOS DemoTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
B02FD54E18C520D70009ECA9 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
B02FD55618C520D70009ECA9 /* iOS DemoTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "iOS DemoTests-Info.plist"; sourceTree = "<group>"; };
B02FD55818C520D70009ECA9 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
B02FD55A18C520D70009ECA9 /* iOS_DemoTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = iOS_DemoTests.m; sourceTree = "<group>"; };
B02FD56E18C521560009ECA9 /* ViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; };
B02FD56F18C521560009ECA9 /* ViewController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ViewController.mm; sourceTree = "<group>"; };
B0779A7E18D376A5004DA9B7 /* STK.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = STK.xcodeproj; path = ../STK.xcodeproj; sourceTree = "<group>"; };
B0779A8918D37977004DA9B7 /* README.MD */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README.MD; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
B02FD52F18C520D60009ECA9 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
B0779A8718D376F5004DA9B7 /* libSTK.a in Frameworks */,
B02FD53818C520D60009ECA9 /* CoreGraphics.framework in Frameworks */,
B02FD53A18C520D60009ECA9 /* UIKit.framework in Frameworks */,
B02FD53618C520D60009ECA9 /* Foundation.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
B02FD54A18C520D70009ECA9 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
B02FD54F18C520D70009ECA9 /* XCTest.framework in Frameworks */,
B02FD55118C520D70009ECA9 /* UIKit.framework in Frameworks */,
B02FD55018C520D70009ECA9 /* Foundation.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
B02FD52918C520D60009ECA9 = {
isa = PBXGroup;
children = (
B0779A8918D37977004DA9B7 /* README.MD */,
B0779A7E18D376A5004DA9B7 /* STK.xcodeproj */,
B02FD53B18C520D60009ECA9 /* iOS Demo */,
B02FD55418C520D70009ECA9 /* iOS DemoTests */,
B02FD53418C520D60009ECA9 /* Frameworks */,
B02FD53318C520D60009ECA9 /* Products */,
);
sourceTree = "<group>";
};
B02FD53318C520D60009ECA9 /* Products */ = {
isa = PBXGroup;
children = (
B02FD53218C520D60009ECA9 /* iOS Demo.app */,
B02FD54D18C520D70009ECA9 /* iOS DemoTests.xctest */,
);
name = Products;
sourceTree = "<group>";
};
B02FD53418C520D60009ECA9 /* Frameworks */ = {
isa = PBXGroup;
children = (
B02FD53518C520D60009ECA9 /* Foundation.framework */,
B02FD53718C520D60009ECA9 /* CoreGraphics.framework */,
B02FD53918C520D60009ECA9 /* UIKit.framework */,
B02FD54E18C520D70009ECA9 /* XCTest.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
B02FD53B18C520D60009ECA9 /* iOS Demo */ = {
isa = PBXGroup;
children = (
B02FD54418C520D60009ECA9 /* AppDelegate.h */,
B02FD54518C520D60009ECA9 /* AppDelegate.m */,
B02FD56E18C521560009ECA9 /* ViewController.h */,
B02FD56F18C521560009ECA9 /* ViewController.mm */,
B02FD54718C520D60009ECA9 /* Images.xcassets */,
B02FD53C18C520D60009ECA9 /* Supporting Files */,
);
path = "iOS Demo";
sourceTree = "<group>";
};
B02FD53C18C520D60009ECA9 /* Supporting Files */ = {
isa = PBXGroup;
children = (
B02FD53D18C520D60009ECA9 /* iOS Demo-Info.plist */,
B02FD53E18C520D60009ECA9 /* InfoPlist.strings */,
B02FD54118C520D60009ECA9 /* main.m */,
B02FD54318C520D60009ECA9 /* iOS Demo-Prefix.pch */,
);
name = "Supporting Files";
sourceTree = "<group>";
};
B02FD55418C520D70009ECA9 /* iOS DemoTests */ = {
isa = PBXGroup;
children = (
B02FD55A18C520D70009ECA9 /* iOS_DemoTests.m */,
B02FD55518C520D70009ECA9 /* Supporting Files */,
);
path = "iOS DemoTests";
sourceTree = "<group>";
};
B02FD55518C520D70009ECA9 /* Supporting Files */ = {
isa = PBXGroup;
children = (
B02FD55618C520D70009ECA9 /* iOS DemoTests-Info.plist */,
B02FD55718C520D70009ECA9 /* InfoPlist.strings */,
);
name = "Supporting Files";
sourceTree = "<group>";
};
B0779A7F18D376A5004DA9B7 /* Products */ = {
isa = PBXGroup;
children = (
B0779A8418D376A6004DA9B7 /* libSTK.a */,
B0779A8618D376A6004DA9B7 /* rawwaves.bundle */,
);
name = Products;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
B02FD53118C520D60009ECA9 /* iOS Demo */ = {
isa = PBXNativeTarget;
buildConfigurationList = B02FD55E18C520D70009ECA9 /* Build configuration list for PBXNativeTarget "iOS Demo" */;
buildPhases = (
B02FD52E18C520D60009ECA9 /* Sources */,
B02FD52F18C520D60009ECA9 /* Frameworks */,
B02FD53018C520D60009ECA9 /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = "iOS Demo";
productName = "iOS Demo";
productReference = B02FD53218C520D60009ECA9 /* iOS Demo.app */;
productType = "com.apple.product-type.application";
};
B02FD54C18C520D70009ECA9 /* iOS DemoTests */ = {
isa = PBXNativeTarget;
buildConfigurationList = B02FD56118C520D70009ECA9 /* Build configuration list for PBXNativeTarget "iOS DemoTests" */;
buildPhases = (
B02FD54918C520D70009ECA9 /* Sources */,
B02FD54A18C520D70009ECA9 /* Frameworks */,
B02FD54B18C520D70009ECA9 /* Resources */,
);
buildRules = (
);
dependencies = (
B02FD55318C520D70009ECA9 /* PBXTargetDependency */,
);
name = "iOS DemoTests";
productName = "iOS DemoTests";
productReference = B02FD54D18C520D70009ECA9 /* iOS DemoTests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
B02FD52A18C520D60009ECA9 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0510;
ORGANIZATIONNAME = "Ariel Elkin";
TargetAttributes = {
B02FD54C18C520D70009ECA9 = {
TestTargetID = B02FD53118C520D60009ECA9;
};
};
};
buildConfigurationList = B02FD52D18C520D60009ECA9 /* Build configuration list for PBXProject "iOS Demo" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
);
mainGroup = B02FD52918C520D60009ECA9;
productRefGroup = B02FD53318C520D60009ECA9 /* Products */;
projectDirPath = "";
projectReferences = (
{
ProductGroup = B0779A7F18D376A5004DA9B7 /* Products */;
ProjectRef = B0779A7E18D376A5004DA9B7 /* STK.xcodeproj */;
},
);
projectRoot = "";
targets = (
B02FD53118C520D60009ECA9 /* iOS Demo */,
B02FD54C18C520D70009ECA9 /* iOS DemoTests */,
);
};
/* End PBXProject section */
/* Begin PBXReferenceProxy section */
B0779A8418D376A6004DA9B7 /* libSTK.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libSTK.a;
remoteRef = B0779A8318D376A6004DA9B7 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
B0779A8618D376A6004DA9B7 /* rawwaves.bundle */ = {
isa = PBXReferenceProxy;
fileType = wrapper.cfbundle;
path = rawwaves.bundle;
remoteRef = B0779A8518D376A6004DA9B7 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
/* End PBXReferenceProxy section */
/* Begin PBXResourcesBuildPhase section */
B02FD53018C520D60009ECA9 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
B0779A8B18D37C13004DA9B7 /* rawwaves.bundle in Resources */,
B02FD54018C520D60009ECA9 /* InfoPlist.strings in Resources */,
B02FD54818C520D60009ECA9 /* Images.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
B02FD54B18C520D70009ECA9 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
B02FD55918C520D70009ECA9 /* InfoPlist.strings in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
B02FD52E18C520D60009ECA9 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
B02FD57018C521560009ECA9 /* ViewController.mm in Sources */,
B02FD54618C520D60009ECA9 /* AppDelegate.m in Sources */,
B02FD54218C520D60009ECA9 /* main.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
B02FD54918C520D70009ECA9 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
B02FD55B18C520D70009ECA9 /* iOS_DemoTests.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
B02FD55318C520D70009ECA9 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = B02FD53118C520D60009ECA9 /* iOS Demo */;
targetProxy = B02FD55218C520D70009ECA9 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin PBXVariantGroup section */
B02FD53E18C520D60009ECA9 /* InfoPlist.strings */ = {
isa = PBXVariantGroup;
children = (
B02FD53F18C520D60009ECA9 /* en */,
);
name = InfoPlist.strings;
sourceTree = "<group>";
};
B02FD55718C520D70009ECA9 /* InfoPlist.strings */ = {
isa = PBXVariantGroup;
children = (
B02FD55818C520D70009ECA9 /* en */,
);
name = InfoPlist.strings;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
B02FD55C18C520D70009ECA9 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
};
name = Debug;
};
B02FD55D18C520D70009ECA9 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = YES;
ENABLE_NS_ASSERTIONS = NO;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
SDKROOT = iphoneos;
VALIDATE_PRODUCT = YES;
};
name = Release;
};
B02FD55F18C520D70009ECA9 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "iOS Demo/iOS Demo-Prefix.pch";
HEADER_SEARCH_PATHS = (
../../include/,
"$(inherited)",
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
);
INFOPLIST_FILE = "iOS Demo/iOS Demo-Info.plist";
PRODUCT_NAME = "$(TARGET_NAME)";
WRAPPER_EXTENSION = app;
};
name = Debug;
};
B02FD56018C520D70009ECA9 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "iOS Demo/iOS Demo-Prefix.pch";
HEADER_SEARCH_PATHS = (
../../include/,
"$(inherited)",
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
);
INFOPLIST_FILE = "iOS Demo/iOS Demo-Info.plist";
PRODUCT_NAME = "$(TARGET_NAME)";
WRAPPER_EXTENSION = app;
};
name = Release;
};
B02FD56218C520D70009ECA9 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/iOS Demo.app/iOS Demo";
FRAMEWORK_SEARCH_PATHS = (
"$(SDKROOT)/Developer/Library/Frameworks",
"$(inherited)",
"$(DEVELOPER_FRAMEWORKS_DIR)",
);
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "iOS Demo/iOS Demo-Prefix.pch";
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
INFOPLIST_FILE = "iOS DemoTests/iOS DemoTests-Info.plist";
PRODUCT_NAME = "$(TARGET_NAME)";
TEST_HOST = "$(BUNDLE_LOADER)";
WRAPPER_EXTENSION = xctest;
};
name = Debug;
};
B02FD56318C520D70009ECA9 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/iOS Demo.app/iOS Demo";
FRAMEWORK_SEARCH_PATHS = (
"$(SDKROOT)/Developer/Library/Frameworks",
"$(inherited)",
"$(DEVELOPER_FRAMEWORKS_DIR)",
);
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "iOS Demo/iOS Demo-Prefix.pch";
INFOPLIST_FILE = "iOS DemoTests/iOS DemoTests-Info.plist";
PRODUCT_NAME = "$(TARGET_NAME)";
TEST_HOST = "$(BUNDLE_LOADER)";
WRAPPER_EXTENSION = xctest;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
B02FD52D18C520D60009ECA9 /* Build configuration list for PBXProject "iOS Demo" */ = {
isa = XCConfigurationList;
buildConfigurations = (
B02FD55C18C520D70009ECA9 /* Debug */,
B02FD55D18C520D70009ECA9 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
B02FD55E18C520D70009ECA9 /* Build configuration list for PBXNativeTarget "iOS Demo" */ = {
isa = XCConfigurationList;
buildConfigurations = (
B02FD55F18C520D70009ECA9 /* Debug */,
B02FD56018C520D70009ECA9 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
B02FD56118C520D70009ECA9 /* Build configuration list for PBXNativeTarget "iOS DemoTests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
B02FD56218C520D70009ECA9 /* Debug */,
B02FD56318C520D70009ECA9 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = B02FD52A18C520D60009ECA9 /* Project object */;
}

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:iOS Demo.xcodeproj">
</FileRef>
</Workspace>

View File

@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDESourceControlProjectFavoriteDictionaryKey</key>
<false/>
<key>IDESourceControlProjectIdentifier</key>
<string>A49E4421-16FD-4274-8E8F-FEB022755C87</string>
<key>IDESourceControlProjectName</key>
<string>iOS Demo</string>
<key>IDESourceControlProjectOriginsDictionary</key>
<dict>
<key>CB047168-D1C4-40BC-85A3-6EB0A20AD217</key>
<string>ssh://github.com/arielelkin/stk.git</string>
</dict>
<key>IDESourceControlProjectPath</key>
<string>iOS/Demo/iOS Demo.xcodeproj/project.xcworkspace</string>
<key>IDESourceControlProjectRelativeInstallPathDictionary</key>
<dict>
<key>CB047168-D1C4-40BC-85A3-6EB0A20AD217</key>
<string>../../../..</string>
</dict>
<key>IDESourceControlProjectURL</key>
<string>ssh://github.com/arielelkin/stk.git</string>
<key>IDESourceControlProjectVersion</key>
<integer>110</integer>
<key>IDESourceControlProjectWCCIdentifier</key>
<string>CB047168-D1C4-40BC-85A3-6EB0A20AD217</string>
<key>IDESourceControlProjectWCConfigurations</key>
<array>
<dict>
<key>IDESourceControlRepositoryExtensionIdentifierKey</key>
<string>public.vcs.git</string>
<key>IDESourceControlWCCIdentifierKey</key>
<string>CB047168-D1C4-40BC-85A3-6EB0A20AD217</string>
<key>IDESourceControlWCCName</key>
<string>stk</string>
</dict>
</array>
</dict>
</plist>

View File

@@ -0,0 +1,14 @@
//
// AppDelegate.h
// iOS Demo
//
// Created by Ariel Elkin on 03/03/2014.
//
#import <UIKit/UIKit.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@end

View File

@@ -0,0 +1,25 @@
//
// AppDelegate.m
// iOS Demo
//
// Created by Ariel Elkin on 03/03/2014.
//
#import "AppDelegate.h"
#import "ViewController.h"
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
ViewController *vc = [[ViewController alloc] initWithNibName:nil bundle:nil];
[self.window setRootViewController:vc];
[self.window makeKeyAndVisible];
return YES;
}
@end

View File

@@ -0,0 +1,23 @@
{
"images" : [
{
"idiom" : "iphone",
"size" : "29x29",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "40x40",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "60x60",
"scale" : "2x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View File

@@ -0,0 +1,23 @@
{
"images" : [
{
"orientation" : "portrait",
"idiom" : "iphone",
"extent" : "full-screen",
"minimum-system-version" : "7.0",
"scale" : "2x"
},
{
"orientation" : "portrait",
"idiom" : "iphone",
"subtype" : "retina4",
"extent" : "full-screen",
"minimum-system-version" : "7.0",
"scale" : "2x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View File

@@ -0,0 +1,12 @@
//
// ViewController.h
// iOS Demo
//
// Created by Ariel Elkin on 03/03/2014.
//
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
@end

View File

@@ -0,0 +1,102 @@
//
// ViewController.m
// iOS Demo
//
// Created by Ariel Elkin on 03/03/2014.
//
#import "ViewController.h"
#import "SineWave.h"
#import "Brass.h"
#import "Mandolin.h"
@implementation ViewController {
stk::SineWave *sineWave;
stk::Brass *brass;
}
- (void)loadView {
self.view = [UIView new];
[self.view setBackgroundColor:[UIColor whiteColor]];
[self setupUI];
}
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
NSUInteger samplesToGenerate = 1000;
//Test SineWave:
sineWave = new stk::SineWave();
for (NSUInteger i = 0; i < samplesToGenerate; i ++) {
float sample = sineWave->tick();
NSLog(@"SineWave sample: %f", sample);
}
//Test Brass:
brass = new stk::Brass();
brass->noteOn(400, 1);
for (NSUInteger i = 0; i < samplesToGenerate; i ++) {
float sample = brass->tick();
NSLog(@"Brass sample: %f", sample);
}
//Test Mandolin:
stk::Mandolin *mandolin = new stk::Mandolin(400);
mandolin->pluck(1);
for (NSUInteger i = 0; i < samplesToGenerate; i ++) {
float sample = mandolin->tick();
NSLog(@"Mandolin sample: %f", sample);
}
#pragma mark TODO - Audio playback
}
- (void)sineSliderMoved:(UISlider *)slider {
sineWave->setFrequency(slider.value);
NSLog(@"Setting SineWave frequency to %.2f", slider.value);
}
- (void)brassSliderMoved:(UISlider *)slider {
brass->setFrequency(slider.value);
NSLog(@"Setting Brass frequency to %.2f", slider.value);
}
- (void)setupUI {
//Add slider to control sine wave frequency:
UISlider *sineSlider = [[UISlider alloc] init];
[sineSlider addTarget:self action:@selector(sineSliderMoved:) forControlEvents:UIControlEventValueChanged];
[sineSlider setMinimumValue:0];
[sineSlider setMaximumValue:800];
[sineSlider setTranslatesAutoresizingMaskIntoConstraints:NO];
[self.view addSubview:sineSlider];
NSDictionary *metrics = @{@"sliderWidth": @200};
NSArray *sliderConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-40-[sineSlider(sliderWidth)]" options:0 metrics:metrics views:@{@"sineSlider": sineSlider}];
[self.view addConstraints:sliderConstraints];
//Add slider to control brass's frequency:
UISlider *brassSlider = [[UISlider alloc] init];
[brassSlider addTarget:self action:@selector(brassSliderMoved:) forControlEvents:UIControlEventValueChanged];
[brassSlider setMinimumValue:0];
[brassSlider setMaximumValue:800];
[brassSlider setTranslatesAutoresizingMaskIntoConstraints:NO];
[self.view addSubview:brassSlider];
sliderConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-40-[brassSlider(sliderWidth)]" options:0 metrics:metrics views:@{@"brassSlider": brassSlider}];
[self.view addConstraints:sliderConstraints];
sliderConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-40-[sineSlider]-[brassSlider]" options:0 metrics:nil views:@{@"sineSlider": sineSlider, @"brassSlider": brassSlider}];
[self.view addConstraints:sliderConstraints];
}
@end

View File

@@ -0,0 +1,2 @@
/* Localized versions of Info.plist keys */

View File

@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleDisplayName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
<string>stk.${PRODUCT_NAME:rfc1034identifier}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
</dict>
</plist>

View File

@@ -0,0 +1,16 @@
//
// Prefix header
//
// The contents of this file are implicitly included at the beginning of every source file.
//
#import <Availability.h>
#ifndef __IPHONE_3_0
#warning "This project uses features only available in iOS SDK 3.0 and later."
#endif
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#endif

18
iOS/Demo/iOS Demo/main.m Normal file
View File

@@ -0,0 +1,18 @@
//
// main.m
// iOS Demo
//
// Created by Ariel Elkin on 03/03/2014.
// Copyright (c) 2014 Ariel Elkin. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "AppDelegate.h"
int main(int argc, char * argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}

View File

@@ -0,0 +1,2 @@
/* Localized versions of Info.plist keys */

View File

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
<string>stk.${PRODUCT_NAME:rfc1034identifier}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1</string>
</dict>
</plist>

View File

@@ -0,0 +1,34 @@
//
// iOS_DemoTests.m
// iOS DemoTests
//
// Created by Ariel Elkin on 03/03/2014.
// Copyright (c) 2014 Ariel Elkin. All rights reserved.
//
#import <XCTest/XCTest.h>
@interface iOS_DemoTests : XCTestCase
@end
@implementation iOS_DemoTests
- (void)setUp
{
[super setUp];
// Put setup code here. This method is called before the invocation of each test method in the class.
}
- (void)tearDown
{
// Put teardown code here. This method is called after the invocation of each test method in the class.
[super tearDown];
}
- (void)testExample
{
XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__);
}
@end

73
iOS/README.md Normal file
View File

@@ -0,0 +1,73 @@
##Setup
1. [Clone][clone_link] or [download][download_link] the STK into your project's directory.
1. Open the **STK for iOS** folder, and drag and drop **STK.xcodeproj** into your Xcode project.
1. Open your project's settings, open the *Build Phases* tab. In the *Link Binary with Libraries* section, add **libSTK.a**.
![][linking_libSTK_screenshot]
1. In your project's settings, open the *Build Settings* tab. In the *Search Paths* section, double click on the field to the right of *Header Search Paths*, and add the path to the STK's **include** directory relative to your Xcode project's directory.
![][header_search_paths_screenshot]
##Usage
1. Import the STK classes in the source files you require.
* E.g. `#import "SineWave.h"`
1. Change the extension of Objective-C files that import STK files to **.mm**.
* E.g. **ViewController.m** —> **ViewController.mm**
You can also look at the [iOS Demo project](..projects/demo/iOS%20Demo) for a sample usage.
##Troubleshooting
###'FileName.h' file not found
If you get this error when `#import`ing an STK header, you have added the wrong header search path for the STK in your project's settings (see Step 4 in Setup)
The STK's header search path you need to add is the path to the STK's **include** directory relative to your project's directory (as if you were `cd`ing into it). For example, it is `stk/include/` if the stk directory is inside your project's directory, but it is `../stk/include/` if both share the same directory.
If this problem doesn't go away:
1. Delete **STK.xcodeproj** from your Xcode project
1. Move the STK directory within your project's directory.
1. Follow step 1 from **Setup**, add `stk/include` to the *Header Search Paths*.
###Raw waves
If you use a class that makes use of raw waves (such as `Mandolin`, `Wurley`, or `Rhodey`) you need to copy the STK's raw wave files into your bundle. You'll know you need to if you get this runtime error:
`FileRead::open: could not open or find file (../../rawwaves/filename.raw)!`
1. Open your project's settings, open the *Build Phases* tab.
1. In the *Copy Bundle Resources*, drag and drop **rawwaves.bundle** (it's located in **STK.xcodeproj**'s **Helpers** folder).
1. Then add this code before using a class that needs the raw waves:
```objective-c
NSBundle *rawwaveBundle = [NSBundle bundleWithURL:[[NSBundle mainBundle] URLForResource:@"rawwaves" withExtension:@"bundle"]];
stk::Stk::setRawwavePath([[rawwaveBundle resourcePath] UTF8String]);
```
###rawwaves.bundle: No such file or directory
This means that **rawwaves.bundle** hasn't been copied to the build folder, so you'll need to do it manually:
Select the rawwaves scheme:
![][rawwaves_scheme_screenshot]
Build it (⌘+B) then build your project's main scheme.
###Apple Mach-O Linker Error
This means that **STKLib.a** isn't being linked to your binary. Follow step 2 above in Setup.
[clone_link]: git@github.com:thestk/stk.git
[download_link]: https://github.com/thestk/stk/archive/master.zip
[linking_libSTK_screenshot]: http://i.imgur.com/cLbGrtq.png
[header_search_paths_screenshot]: http://i.imgur.com/iBTC06h.png
[rawwaves_scheme_screenshot]: http://i.imgur.com/PKd7epf.png

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:STK for iOS.xcodeproj">
</FileRef>
</Workspace>

View File

@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDESourceControlProjectFavoriteDictionaryKey</key>
<false/>
<key>IDESourceControlProjectIdentifier</key>
<string>18FB414F-2DD6-484D-A0A9-8AEE7068C849</string>
<key>IDESourceControlProjectName</key>
<string>STK for iOS</string>
<key>IDESourceControlProjectOriginsDictionary</key>
<dict>
<key>8F90F41D-319D-40FA-AE64-12325A91B6D4</key>
<string>ssh://github.com/arielelkin/stk.git</string>
</dict>
<key>IDESourceControlProjectPath</key>
<string>STK for iOS/STK for iOS.xcodeproj/project.xcworkspace</string>
<key>IDESourceControlProjectRelativeInstallPathDictionary</key>
<dict>
<key>8F90F41D-319D-40FA-AE64-12325A91B6D4</key>
<string>../../..</string>
</dict>
<key>IDESourceControlProjectURL</key>
<string>ssh://github.com/arielelkin/stk.git</string>
<key>IDESourceControlProjectVersion</key>
<integer>110</integer>
<key>IDESourceControlProjectWCCIdentifier</key>
<string>8F90F41D-319D-40FA-AE64-12325A91B6D4</string>
<key>IDESourceControlProjectWCConfigurations</key>
<array>
<dict>
<key>IDESourceControlRepositoryExtensionIdentifierKey</key>
<string>public.vcs.git</string>
<key>IDESourceControlWCCIdentifierKey</key>
<string>8F90F41D-319D-40FA-AE64-12325A91B6D4</string>
<key>IDESourceControlWCCName</key>
<string>stk</string>
</dict>
</array>
</dict>
</plist>

View File

@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDESourceControlProjectFavoriteDictionaryKey</key>
<false/>
<key>IDESourceControlProjectIdentifier</key>
<string>361A7ADB-A5E2-4BAB-A539-EBF076762B44</string>
<key>IDESourceControlProjectName</key>
<string>STK</string>
<key>IDESourceControlProjectOriginsDictionary</key>
<dict>
<key>12089B0D-8850-4865-BB8F-9C05CB2D53D7</key>
<string>ssh://github.com/arielelkin/stk.git</string>
</dict>
<key>IDESourceControlProjectPath</key>
<string>STK for iOS/STK.xcodeproj/project.xcworkspace</string>
<key>IDESourceControlProjectRelativeInstallPathDictionary</key>
<dict>
<key>12089B0D-8850-4865-BB8F-9C05CB2D53D7</key>
<string>../../..</string>
</dict>
<key>IDESourceControlProjectURL</key>
<string>ssh://github.com/arielelkin/stk.git</string>
<key>IDESourceControlProjectVersion</key>
<integer>110</integer>
<key>IDESourceControlProjectWCCIdentifier</key>
<string>12089B0D-8850-4865-BB8F-9C05CB2D53D7</string>
<key>IDESourceControlProjectWCConfigurations</key>
<array>
<dict>
<key>IDESourceControlRepositoryExtensionIdentifierKey</key>
<string>public.vcs.git</string>
<key>IDESourceControlWCCIdentifierKey</key>
<string>12089B0D-8850-4865-BB8F-9C05CB2D53D7</string>
<key>IDESourceControlWCCName</key>
<string>stk</string>
</dict>
</array>
</dict>
</plist>