├── .gitattributes
├── .gitignore
├── .swiftlint.yml
├── LICENSE.txt
├── Podfile
├── Podfile.lock
├── README.md
├── Settings.bundle
├── Legal.plist
├── Root.plist
└── en.lproj
│ └── Root.strings
├── libpd-Swift-sample.xcodeproj
└── project.pbxproj
├── libpd-Swift-sample
├── AppDelegate.swift
├── Base.lproj
│ └── Main.storyboard
├── ConstantValues.swift
├── Images.xcassets
│ ├── AppIcon.appiconset
│ │ └── Contents.json
│ └── LaunchImage.launchimage
│ │ └── Contents.json
├── Info.plist
├── MyCounter.c
├── MyCounter.h
├── Resources
│ └── sample.pd
├── ViewController.swift
└── libpd-Swift-sample-Bridging-Header.h
└── libpd-Swift-sampleTests
├── Info.plist
└── libpd_Swift_sampleTests.swift
/.gitattributes:
--------------------------------------------------------------------------------
1 | libpd-Swift-sample/Resources/* linguist-vendored
2 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | #OSX
2 | *~
3 | .DS_Store
4 | #
5 | # for iOS/Xcode
6 | # --build file
7 | build/
8 | DerivedData
9 | # --private settings
10 | *.pbxuser
11 | *.mode1v3
12 | *.mode2v3
13 | *.perspectivev3
14 | # --default settings
15 | !default.pbxuser
16 | !default.mode1v3
17 | !default.mode2v3
18 | !default.perspectivev3
19 | # --custom scheme
20 | xcuserdata
21 | # --manual deprecated
22 | *.moved-aside
23 | # --edited by start Xcode
24 | *.xcuserstate
25 | # --VCS metadata
26 | *.xccheckout
27 | # --etc
28 | profile
29 | *.hmap
30 | *.ipa
31 |
32 | *.pd_darwin
33 |
34 | # CocoaPods
35 | Pods
36 | *.xcworkspace
37 | !default.xcworkspace
38 |
--------------------------------------------------------------------------------
/.swiftlint.yml:
--------------------------------------------------------------------------------
1 | disabled_rules: # rule identifiers to exclude from running
2 | - line_length # no limit on length of line
3 | - trailing_whitespace # be able to one empty line
4 | - large_tuple # tuple can hold values more than three
5 | opt_in_rules: # some rules are only opt-in
6 | - empty_count
7 | - missing_docs
8 | # Find all the available rules by running:
9 | # swiftlint rules
10 | included: # paths to include during linting. `--path` is ignored if present.
11 | - libpd-Swift-sample
12 | excluded: # paths to ignore during linting. Takes precedence over `included`.
13 | - Pods
14 | # configurable rules can be customized from this configuration file
15 | # binary rules can set their severity level
16 | force_cast: warning # implicitly
17 | force_try:
18 | severity: warning # explicitly
19 | # rules that have both warning and error levels, can set just the warning level
20 | # implicitly
21 | # line_length: 256
22 | # they can set both implicitly with an array
23 | type_body_length:
24 | - 1500 # warning
25 | - 3000 # error
26 | function_body_length:
27 | - 500 # warning
28 | - 1000 # error
29 | # or they can set both explicitly
30 | file_length:
31 | warning: 1500
32 | error: 3000
33 | # naming rules can set warnings/errors for min_length and max_length
34 | # additionally they can set excluded names
35 | type_name:
36 | min_length: 4 # only warning
37 | max_length: # warning and error
38 | warning: 40
39 | error: 50
40 | excluded: iPhone # excluded via string
41 | variable_name:
42 | min_length: 1 # single letter name is fine
43 | max_length: # warning and error
44 | warning: 40
45 | error: 50
46 | excluded: # excluded via string array
47 | - id
48 | - URL
49 | - GlobalAPIKey
50 | reporter: "xcode" # reporter type (xcode, json, csv, checkstyle, junit, html, emoji)
51 |
--------------------------------------------------------------------------------
/LICENSE.txt:
--------------------------------------------------------------------------------
1 | This software is copyrighted by Hidehisa Yokoyama(hidez) and others. The following
2 | terms (the "Standard Improved BSD License") apply to all files associated with
3 | the software unless explicitly disclaimed in individual files:
4 |
5 | Redistribution and use in source and binary forms, with or without
6 | modification, are permitted provided that the following conditions are
7 | met:
8 |
9 | 1. Redistributions of source code must retain the above copyright
10 | notice, this list of conditions and the following disclaimer.
11 | 2. Redistributions in binary form must reproduce the above
12 | copyright notice, this list of conditions and the following
13 | disclaimer in the documentation and/or other materials provided
14 | with the distribution.
15 | 3. The name of the author may not be used to endorse or promote
16 | products derived from this software without specific prior
17 | written permission.
18 |
19 | THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY
20 | EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
21 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
22 | PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR
23 | BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
24 | EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
25 | TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
27 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28 | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
29 | IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
30 | THE POSSIBILITY OF SUCH DAMAGE.
31 |
--------------------------------------------------------------------------------
/Podfile:
--------------------------------------------------------------------------------
1 | source 'https://github.com/CocoaPods/Specs.git'
2 |
3 | platform :ios, "8.1"
4 | use_frameworks!
5 |
6 | target 'libpd-Swift-sample' do
7 | pod 'libpd', :git => 'https://github.com/libpd/libpd', :submodules => true
8 | end
9 |
--------------------------------------------------------------------------------
/Podfile.lock:
--------------------------------------------------------------------------------
1 | PODS:
2 | - libpd (0.11.0)
3 |
4 | DEPENDENCIES:
5 | - libpd (from `https://github.com/libpd/libpd`)
6 |
7 | EXTERNAL SOURCES:
8 | libpd:
9 | :git: https://github.com/libpd/libpd
10 | :submodules: true
11 |
12 | CHECKOUT OPTIONS:
13 | libpd:
14 | :commit: 419011fa148151dc772f2c8419d7c46cdd980be8
15 | :git: https://github.com/libpd/libpd
16 | :submodules: true
17 |
18 | SPEC CHECKSUMS:
19 | libpd: 92e99cda31e27261cc63c7508a57283561999cb8
20 |
21 | PODFILE CHECKSUM: 1c5ff984595a4b42722db857a14a390f5ecaf395
22 |
23 | COCOAPODS: 1.6.0
24 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # libpd-Swift-sample
2 | This is test sample for libpd on Swift.
3 | If you want the sample on Android or Objective-C, I recommend the book "Making Musical Apps" by Peter Brinkmann.
4 |
5 | # Getting Started
6 | git clone and set up libpd(recommend use CocoaPods).
7 | ```
8 | # cd libpd-Swift-sample/
9 | # pod install
10 | ```
11 | double click libpd-Swift-sample.xcworkspace
12 |
13 | # License
14 | Standard Improved BSD License
15 | See the LICENCE.txt.
16 |
--------------------------------------------------------------------------------
/Settings.bundle/Legal.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreferenceSpecifiers
6 |
7 |
8 | Title
9 |
10 | Type
11 | PSGroupSpecifier
12 | FooterText
13 | libpd
14 |
15 | This software is copyrighted by Miller Puckette and others. The following terms (the "Standard Improved BSD License") apply to all files associated with the software unless explicitly disclaimed in individual files:
16 |
17 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
18 |
19 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
20 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
21 | 3. The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission.
22 |
23 | THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 |
25 |
26 |
27 | Title
28 |
29 | Type
30 | PSGroupSpecifier
31 | FooterText
32 | Pure Data
33 |
34 | This software is copyrighted by Miller Puckette and others. The following terms (the "Standard Improved BSD License") apply to all files associated with the software unless explicitly disclaimed in individual files:
35 |
36 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
37 |
38 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
39 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
40 | 3. The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission.
41 |
42 | THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
43 |
44 |
45 |
46 | StringsTable
47 | license
48 |
49 |
50 |
--------------------------------------------------------------------------------
/Settings.bundle/Root.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | StringsTable
6 | Root
7 | PreferenceSpecifiers
8 |
9 |
10 | Title
11 | About
12 | Type
13 | PSGroupSpecifier
14 | FooterText
15 | Copyright 201x foo.bar All rights reserved.
16 |
17 |
18 |
19 | Type
20 | PSTitleValueSpecifier
21 | DefaultValue
22 | 1.0.0
23 | Title
24 | Version
25 | Key
26 | settings_bundle_version
27 |
28 |
29 | Type
30 | PSTitleValueSpecifier
31 | DefaultValue
32 | 1
33 | Title
34 | Build
35 | Key
36 | settings_bundle_build
37 |
38 |
39 | Type
40 | PSChildPaneSpecifier
41 | Title
42 | Legal
43 | File
44 | Legal
45 |
46 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/Settings.bundle/en.lproj/Root.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hidez/libpd-Swift-sample/220180f6821ca800900e37a0b1d6bda85d727f3e/Settings.bundle/en.lproj/Root.strings
--------------------------------------------------------------------------------
/libpd-Swift-sample.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 46;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 5F353438E2F487BD7D2E0ED8 /* Pods_libpd_Swift_sample.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 08974EC49F54E2973368BD44 /* Pods_libpd_Swift_sample.framework */; };
11 | EC2AC16F1A7D0F5C00CF3EC8 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC2AC16E1A7D0F5C00CF3EC8 /* AppDelegate.swift */; };
12 | EC2AC1711A7D0F5C00CF3EC8 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC2AC1701A7D0F5C00CF3EC8 /* ViewController.swift */; };
13 | EC2AC1741A7D0F5C00CF3EC8 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = EC2AC1721A7D0F5C00CF3EC8 /* Main.storyboard */; };
14 | EC2AC1761A7D0F5C00CF3EC8 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = EC2AC1751A7D0F5C00CF3EC8 /* Images.xcassets */; };
15 | EC2AC1851A7D0F5D00CF3EC8 /* libpd_Swift_sampleTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC2AC1841A7D0F5D00CF3EC8 /* libpd_Swift_sampleTests.swift */; };
16 | EC42D8F71A7D19EB001E25AD /* sample.pd in Resources */ = {isa = PBXBuildFile; fileRef = EC42D8F61A7D19EB001E25AD /* sample.pd */; };
17 | ECA165471BC599D60060F585 /* Settings.bundle in Resources */ = {isa = PBXBuildFile; fileRef = ECA165461BC599D60060F585 /* Settings.bundle */; };
18 | ECA165491BC59C290060F585 /* ConstantValues.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECA165481BC59C290060F585 /* ConstantValues.swift */; };
19 | ECBE8C7A1A7E6C6B0086099F /* MyCounter.c in Sources */ = {isa = PBXBuildFile; fileRef = ECBE8C781A7E6C6B0086099F /* MyCounter.c */; };
20 | /* End PBXBuildFile section */
21 |
22 | /* Begin PBXContainerItemProxy section */
23 | EC2AC17F1A7D0F5D00CF3EC8 /* PBXContainerItemProxy */ = {
24 | isa = PBXContainerItemProxy;
25 | containerPortal = EC2AC1611A7D0F5C00CF3EC8 /* Project object */;
26 | proxyType = 1;
27 | remoteGlobalIDString = EC2AC1681A7D0F5C00CF3EC8;
28 | remoteInfo = "libpd-Swift-sample";
29 | };
30 | /* End PBXContainerItemProxy section */
31 |
32 | /* Begin PBXFileReference section */
33 | 08974EC49F54E2973368BD44 /* Pods_libpd_Swift_sample.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_libpd_Swift_sample.framework; sourceTree = BUILT_PRODUCTS_DIR; };
34 | BB992DF9D91E6AFE852F389E /* Pods-libpd-Swift-sample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-libpd-Swift-sample.release.xcconfig"; path = "Pods/Target Support Files/Pods-libpd-Swift-sample/Pods-libpd-Swift-sample.release.xcconfig"; sourceTree = ""; };
35 | EC2AC1691A7D0F5C00CF3EC8 /* libpd-Swift-sample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "libpd-Swift-sample.app"; sourceTree = BUILT_PRODUCTS_DIR; };
36 | EC2AC16D1A7D0F5C00CF3EC8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
37 | EC2AC16E1A7D0F5C00CF3EC8 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
38 | EC2AC1701A7D0F5C00CF3EC8 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; };
39 | EC2AC1731A7D0F5C00CF3EC8 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; };
40 | EC2AC1751A7D0F5C00CF3EC8 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; };
41 | EC2AC17E1A7D0F5D00CF3EC8 /* libpd-Swift-sampleTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "libpd-Swift-sampleTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
42 | EC2AC1831A7D0F5D00CF3EC8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
43 | EC2AC1841A7D0F5D00CF3EC8 /* libpd_Swift_sampleTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = libpd_Swift_sampleTests.swift; sourceTree = ""; };
44 | EC42D8EF1A7D1935001E25AD /* libpd-Swift-sample-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "libpd-Swift-sample-Bridging-Header.h"; sourceTree = ""; };
45 | EC42D8F61A7D19EB001E25AD /* sample.pd */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = sample.pd; sourceTree = ""; };
46 | ECA165461BC599D60060F585 /* Settings.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = Settings.bundle; sourceTree = ""; };
47 | ECA165481BC59C290060F585 /* ConstantValues.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConstantValues.swift; sourceTree = ""; };
48 | ECBE8C781A7E6C6B0086099F /* MyCounter.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = MyCounter.c; sourceTree = ""; };
49 | ECBE8C791A7E6C6B0086099F /* MyCounter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MyCounter.h; sourceTree = ""; };
50 | F1DAAD528B1A7AB5016C898D /* Pods-libpd-Swift-sample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-libpd-Swift-sample.debug.xcconfig"; path = "Pods/Target Support Files/Pods-libpd-Swift-sample/Pods-libpd-Swift-sample.debug.xcconfig"; sourceTree = ""; };
51 | /* End PBXFileReference section */
52 |
53 | /* Begin PBXFrameworksBuildPhase section */
54 | EC2AC1661A7D0F5C00CF3EC8 /* Frameworks */ = {
55 | isa = PBXFrameworksBuildPhase;
56 | buildActionMask = 2147483647;
57 | files = (
58 | 5F353438E2F487BD7D2E0ED8 /* Pods_libpd_Swift_sample.framework in Frameworks */,
59 | );
60 | runOnlyForDeploymentPostprocessing = 0;
61 | };
62 | EC2AC17B1A7D0F5D00CF3EC8 /* Frameworks */ = {
63 | isa = PBXFrameworksBuildPhase;
64 | buildActionMask = 2147483647;
65 | files = (
66 | );
67 | runOnlyForDeploymentPostprocessing = 0;
68 | };
69 | /* End PBXFrameworksBuildPhase section */
70 |
71 | /* Begin PBXGroup section */
72 | ABA084BAFF07769EFE0786E7 /* Frameworks */ = {
73 | isa = PBXGroup;
74 | children = (
75 | 08974EC49F54E2973368BD44 /* Pods_libpd_Swift_sample.framework */,
76 | );
77 | name = Frameworks;
78 | sourceTree = "";
79 | };
80 | EC2AC1601A7D0F5C00CF3EC8 = {
81 | isa = PBXGroup;
82 | children = (
83 | ECA165461BC599D60060F585 /* Settings.bundle */,
84 | EC2AC16B1A7D0F5C00CF3EC8 /* libpd-Swift-sample */,
85 | EC2AC1811A7D0F5D00CF3EC8 /* libpd-Swift-sampleTests */,
86 | EC2AC16A1A7D0F5C00CF3EC8 /* Products */,
87 | F01B9525E4B119B0A9556233 /* Pods */,
88 | ABA084BAFF07769EFE0786E7 /* Frameworks */,
89 | );
90 | sourceTree = "";
91 | };
92 | EC2AC16A1A7D0F5C00CF3EC8 /* Products */ = {
93 | isa = PBXGroup;
94 | children = (
95 | EC2AC1691A7D0F5C00CF3EC8 /* libpd-Swift-sample.app */,
96 | EC2AC17E1A7D0F5D00CF3EC8 /* libpd-Swift-sampleTests.xctest */,
97 | );
98 | name = Products;
99 | sourceTree = "";
100 | };
101 | EC2AC16B1A7D0F5C00CF3EC8 /* libpd-Swift-sample */ = {
102 | isa = PBXGroup;
103 | children = (
104 | ECA165481BC59C290060F585 /* ConstantValues.swift */,
105 | EC2AC16E1A7D0F5C00CF3EC8 /* AppDelegate.swift */,
106 | EC2AC1701A7D0F5C00CF3EC8 /* ViewController.swift */,
107 | EC42D8EF1A7D1935001E25AD /* libpd-Swift-sample-Bridging-Header.h */,
108 | ECBE8C791A7E6C6B0086099F /* MyCounter.h */,
109 | ECBE8C781A7E6C6B0086099F /* MyCounter.c */,
110 | EC2AC1721A7D0F5C00CF3EC8 /* Main.storyboard */,
111 | EC2AC1751A7D0F5C00CF3EC8 /* Images.xcassets */,
112 | EC42D8F51A7D19EB001E25AD /* Resources */,
113 | EC2AC16C1A7D0F5C00CF3EC8 /* Supporting Files */,
114 | );
115 | path = "libpd-Swift-sample";
116 | sourceTree = "";
117 | };
118 | EC2AC16C1A7D0F5C00CF3EC8 /* Supporting Files */ = {
119 | isa = PBXGroup;
120 | children = (
121 | EC2AC16D1A7D0F5C00CF3EC8 /* Info.plist */,
122 | );
123 | name = "Supporting Files";
124 | sourceTree = "";
125 | };
126 | EC2AC1811A7D0F5D00CF3EC8 /* libpd-Swift-sampleTests */ = {
127 | isa = PBXGroup;
128 | children = (
129 | EC2AC1841A7D0F5D00CF3EC8 /* libpd_Swift_sampleTests.swift */,
130 | EC2AC1821A7D0F5D00CF3EC8 /* Supporting Files */,
131 | );
132 | path = "libpd-Swift-sampleTests";
133 | sourceTree = "";
134 | };
135 | EC2AC1821A7D0F5D00CF3EC8 /* Supporting Files */ = {
136 | isa = PBXGroup;
137 | children = (
138 | EC2AC1831A7D0F5D00CF3EC8 /* Info.plist */,
139 | );
140 | name = "Supporting Files";
141 | sourceTree = "";
142 | };
143 | EC42D8F51A7D19EB001E25AD /* Resources */ = {
144 | isa = PBXGroup;
145 | children = (
146 | EC42D8F61A7D19EB001E25AD /* sample.pd */,
147 | );
148 | path = Resources;
149 | sourceTree = "";
150 | };
151 | F01B9525E4B119B0A9556233 /* Pods */ = {
152 | isa = PBXGroup;
153 | children = (
154 | F1DAAD528B1A7AB5016C898D /* Pods-libpd-Swift-sample.debug.xcconfig */,
155 | BB992DF9D91E6AFE852F389E /* Pods-libpd-Swift-sample.release.xcconfig */,
156 | );
157 | name = Pods;
158 | sourceTree = "";
159 | };
160 | /* End PBXGroup section */
161 |
162 | /* Begin PBXNativeTarget section */
163 | EC2AC1681A7D0F5C00CF3EC8 /* libpd-Swift-sample */ = {
164 | isa = PBXNativeTarget;
165 | buildConfigurationList = EC2AC1881A7D0F5D00CF3EC8 /* Build configuration list for PBXNativeTarget "libpd-Swift-sample" */;
166 | buildPhases = (
167 | B5B76D8F390683C2BB478196 /* [CP] Check Pods Manifest.lock */,
168 | EC2AC1651A7D0F5C00CF3EC8 /* Sources */,
169 | EC2AC1661A7D0F5C00CF3EC8 /* Frameworks */,
170 | EC2AC1671A7D0F5C00CF3EC8 /* Resources */,
171 | 19A7786258DAB905E1646581 /* [CP] Embed Pods Frameworks */,
172 | EC79E9E61E69EE1F00DC98F0 /* ShellScript */,
173 | );
174 | buildRules = (
175 | );
176 | dependencies = (
177 | );
178 | name = "libpd-Swift-sample";
179 | productName = "libpd-Swift-sample";
180 | productReference = EC2AC1691A7D0F5C00CF3EC8 /* libpd-Swift-sample.app */;
181 | productType = "com.apple.product-type.application";
182 | };
183 | EC2AC17D1A7D0F5D00CF3EC8 /* libpd-Swift-sampleTests */ = {
184 | isa = PBXNativeTarget;
185 | buildConfigurationList = EC2AC18B1A7D0F5D00CF3EC8 /* Build configuration list for PBXNativeTarget "libpd-Swift-sampleTests" */;
186 | buildPhases = (
187 | EC2AC17A1A7D0F5D00CF3EC8 /* Sources */,
188 | EC2AC17B1A7D0F5D00CF3EC8 /* Frameworks */,
189 | EC2AC17C1A7D0F5D00CF3EC8 /* Resources */,
190 | );
191 | buildRules = (
192 | );
193 | dependencies = (
194 | EC2AC1801A7D0F5D00CF3EC8 /* PBXTargetDependency */,
195 | );
196 | name = "libpd-Swift-sampleTests";
197 | productName = "libpd-Swift-sampleTests";
198 | productReference = EC2AC17E1A7D0F5D00CF3EC8 /* libpd-Swift-sampleTests.xctest */;
199 | productType = "com.apple.product-type.bundle.unit-test";
200 | };
201 | /* End PBXNativeTarget section */
202 |
203 | /* Begin PBXProject section */
204 | EC2AC1611A7D0F5C00CF3EC8 /* Project object */ = {
205 | isa = PBXProject;
206 | attributes = {
207 | LastSwiftMigration = 0700;
208 | LastSwiftUpdateCheck = 0700;
209 | LastUpgradeCheck = 1020;
210 | ORGANIZATIONNAME = "Hidehisa YOKOYAMA";
211 | TargetAttributes = {
212 | EC2AC1681A7D0F5C00CF3EC8 = {
213 | CreatedOnToolsVersion = 6.1.1;
214 | DevelopmentTeam = U29G7GS2GP;
215 | LastSwiftMigration = 1020;
216 | };
217 | EC2AC17D1A7D0F5D00CF3EC8 = {
218 | CreatedOnToolsVersion = 6.1.1;
219 | LastSwiftMigration = 1020;
220 | TestTargetID = EC2AC1681A7D0F5C00CF3EC8;
221 | };
222 | };
223 | };
224 | buildConfigurationList = EC2AC1641A7D0F5C00CF3EC8 /* Build configuration list for PBXProject "libpd-Swift-sample" */;
225 | compatibilityVersion = "Xcode 3.2";
226 | developmentRegion = en;
227 | hasScannedForEncodings = 0;
228 | knownRegions = (
229 | en,
230 | Base,
231 | );
232 | mainGroup = EC2AC1601A7D0F5C00CF3EC8;
233 | productRefGroup = EC2AC16A1A7D0F5C00CF3EC8 /* Products */;
234 | projectDirPath = "";
235 | projectRoot = "";
236 | targets = (
237 | EC2AC1681A7D0F5C00CF3EC8 /* libpd-Swift-sample */,
238 | EC2AC17D1A7D0F5D00CF3EC8 /* libpd-Swift-sampleTests */,
239 | );
240 | };
241 | /* End PBXProject section */
242 |
243 | /* Begin PBXResourcesBuildPhase section */
244 | EC2AC1671A7D0F5C00CF3EC8 /* Resources */ = {
245 | isa = PBXResourcesBuildPhase;
246 | buildActionMask = 2147483647;
247 | files = (
248 | ECA165471BC599D60060F585 /* Settings.bundle in Resources */,
249 | EC2AC1741A7D0F5C00CF3EC8 /* Main.storyboard in Resources */,
250 | EC42D8F71A7D19EB001E25AD /* sample.pd in Resources */,
251 | EC2AC1761A7D0F5C00CF3EC8 /* Images.xcassets in Resources */,
252 | );
253 | runOnlyForDeploymentPostprocessing = 0;
254 | };
255 | EC2AC17C1A7D0F5D00CF3EC8 /* Resources */ = {
256 | isa = PBXResourcesBuildPhase;
257 | buildActionMask = 2147483647;
258 | files = (
259 | );
260 | runOnlyForDeploymentPostprocessing = 0;
261 | };
262 | /* End PBXResourcesBuildPhase section */
263 |
264 | /* Begin PBXShellScriptBuildPhase section */
265 | 19A7786258DAB905E1646581 /* [CP] Embed Pods Frameworks */ = {
266 | isa = PBXShellScriptBuildPhase;
267 | buildActionMask = 2147483647;
268 | files = (
269 | );
270 | inputPaths = (
271 | "${PODS_ROOT}/Target Support Files/Pods-libpd-Swift-sample/Pods-libpd-Swift-sample-frameworks.sh",
272 | "${BUILT_PRODUCTS_DIR}/libpd/libpd.framework",
273 | );
274 | name = "[CP] Embed Pods Frameworks";
275 | outputPaths = (
276 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/libpd.framework",
277 | );
278 | runOnlyForDeploymentPostprocessing = 0;
279 | shellPath = /bin/sh;
280 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-libpd-Swift-sample/Pods-libpd-Swift-sample-frameworks.sh\"\n";
281 | showEnvVarsInLog = 0;
282 | };
283 | B5B76D8F390683C2BB478196 /* [CP] Check Pods Manifest.lock */ = {
284 | isa = PBXShellScriptBuildPhase;
285 | buildActionMask = 2147483647;
286 | files = (
287 | );
288 | inputPaths = (
289 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
290 | "${PODS_ROOT}/Manifest.lock",
291 | );
292 | name = "[CP] Check Pods Manifest.lock";
293 | outputPaths = (
294 | "$(DERIVED_FILE_DIR)/Pods-libpd-Swift-sample-checkManifestLockResult.txt",
295 | );
296 | runOnlyForDeploymentPostprocessing = 0;
297 | shellPath = /bin/sh;
298 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
299 | showEnvVarsInLog = 0;
300 | };
301 | EC79E9E61E69EE1F00DC98F0 /* ShellScript */ = {
302 | isa = PBXShellScriptBuildPhase;
303 | buildActionMask = 2147483647;
304 | files = (
305 | );
306 | inputPaths = (
307 | );
308 | outputPaths = (
309 | );
310 | runOnlyForDeploymentPostprocessing = 0;
311 | shellPath = /bin/sh;
312 | shellScript = "if which swiftlint >/dev/null; then\nswiftlint\nelse\necho \"warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint\"\nfi";
313 | };
314 | /* End PBXShellScriptBuildPhase section */
315 |
316 | /* Begin PBXSourcesBuildPhase section */
317 | EC2AC1651A7D0F5C00CF3EC8 /* Sources */ = {
318 | isa = PBXSourcesBuildPhase;
319 | buildActionMask = 2147483647;
320 | files = (
321 | EC2AC1711A7D0F5C00CF3EC8 /* ViewController.swift in Sources */,
322 | ECA165491BC59C290060F585 /* ConstantValues.swift in Sources */,
323 | ECBE8C7A1A7E6C6B0086099F /* MyCounter.c in Sources */,
324 | EC2AC16F1A7D0F5C00CF3EC8 /* AppDelegate.swift in Sources */,
325 | );
326 | runOnlyForDeploymentPostprocessing = 0;
327 | };
328 | EC2AC17A1A7D0F5D00CF3EC8 /* Sources */ = {
329 | isa = PBXSourcesBuildPhase;
330 | buildActionMask = 2147483647;
331 | files = (
332 | EC2AC1851A7D0F5D00CF3EC8 /* libpd_Swift_sampleTests.swift in Sources */,
333 | );
334 | runOnlyForDeploymentPostprocessing = 0;
335 | };
336 | /* End PBXSourcesBuildPhase section */
337 |
338 | /* Begin PBXTargetDependency section */
339 | EC2AC1801A7D0F5D00CF3EC8 /* PBXTargetDependency */ = {
340 | isa = PBXTargetDependency;
341 | target = EC2AC1681A7D0F5C00CF3EC8 /* libpd-Swift-sample */;
342 | targetProxy = EC2AC17F1A7D0F5D00CF3EC8 /* PBXContainerItemProxy */;
343 | };
344 | /* End PBXTargetDependency section */
345 |
346 | /* Begin PBXVariantGroup section */
347 | EC2AC1721A7D0F5C00CF3EC8 /* Main.storyboard */ = {
348 | isa = PBXVariantGroup;
349 | children = (
350 | EC2AC1731A7D0F5C00CF3EC8 /* Base */,
351 | );
352 | name = Main.storyboard;
353 | sourceTree = "";
354 | };
355 | /* End PBXVariantGroup section */
356 |
357 | /* Begin XCBuildConfiguration section */
358 | EC2AC1861A7D0F5D00CF3EC8 /* Debug */ = {
359 | isa = XCBuildConfiguration;
360 | buildSettings = {
361 | ALWAYS_SEARCH_USER_PATHS = NO;
362 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
363 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
364 | CLANG_CXX_LIBRARY = "libc++";
365 | CLANG_ENABLE_MODULES = YES;
366 | CLANG_ENABLE_OBJC_ARC = YES;
367 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
368 | CLANG_WARN_BOOL_CONVERSION = YES;
369 | CLANG_WARN_COMMA = YES;
370 | CLANG_WARN_CONSTANT_CONVERSION = YES;
371 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
372 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
373 | CLANG_WARN_EMPTY_BODY = YES;
374 | CLANG_WARN_ENUM_CONVERSION = YES;
375 | CLANG_WARN_INFINITE_RECURSION = YES;
376 | CLANG_WARN_INT_CONVERSION = YES;
377 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
378 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
379 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
380 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
381 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
382 | CLANG_WARN_STRICT_PROTOTYPES = YES;
383 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
384 | CLANG_WARN_UNREACHABLE_CODE = YES;
385 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
386 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
387 | COPY_PHASE_STRIP = NO;
388 | ENABLE_STRICT_OBJC_MSGSEND = YES;
389 | ENABLE_TESTABILITY = YES;
390 | GCC_C_LANGUAGE_STANDARD = gnu99;
391 | GCC_DYNAMIC_NO_PIC = NO;
392 | GCC_NO_COMMON_BLOCKS = YES;
393 | GCC_OPTIMIZATION_LEVEL = 0;
394 | GCC_PREPROCESSOR_DEFINITIONS = (
395 | "DEBUG=1",
396 | "$(inherited)",
397 | );
398 | GCC_SYMBOLS_PRIVATE_EXTERN = NO;
399 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
400 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
401 | GCC_WARN_UNDECLARED_SELECTOR = YES;
402 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
403 | GCC_WARN_UNUSED_FUNCTION = YES;
404 | GCC_WARN_UNUSED_VARIABLE = YES;
405 | HEADER_SEARCH_PATHS = "";
406 | IPHONEOS_DEPLOYMENT_TARGET = 8.1;
407 | MTL_ENABLE_DEBUG_INFO = YES;
408 | ONLY_ACTIVE_ARCH = YES;
409 | SDKROOT = iphoneos;
410 | SWIFT_OPTIMIZATION_LEVEL = "-Onone";
411 | TARGETED_DEVICE_FAMILY = "1,2";
412 | };
413 | name = Debug;
414 | };
415 | EC2AC1871A7D0F5D00CF3EC8 /* Release */ = {
416 | isa = XCBuildConfiguration;
417 | buildSettings = {
418 | ALWAYS_SEARCH_USER_PATHS = NO;
419 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
420 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
421 | CLANG_CXX_LIBRARY = "libc++";
422 | CLANG_ENABLE_MODULES = YES;
423 | CLANG_ENABLE_OBJC_ARC = YES;
424 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
425 | CLANG_WARN_BOOL_CONVERSION = YES;
426 | CLANG_WARN_COMMA = YES;
427 | CLANG_WARN_CONSTANT_CONVERSION = YES;
428 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
429 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
430 | CLANG_WARN_EMPTY_BODY = YES;
431 | CLANG_WARN_ENUM_CONVERSION = YES;
432 | CLANG_WARN_INFINITE_RECURSION = YES;
433 | CLANG_WARN_INT_CONVERSION = YES;
434 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
435 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
436 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
437 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
438 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
439 | CLANG_WARN_STRICT_PROTOTYPES = YES;
440 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
441 | CLANG_WARN_UNREACHABLE_CODE = YES;
442 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
443 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
444 | COPY_PHASE_STRIP = YES;
445 | ENABLE_NS_ASSERTIONS = NO;
446 | ENABLE_STRICT_OBJC_MSGSEND = YES;
447 | GCC_C_LANGUAGE_STANDARD = gnu99;
448 | GCC_NO_COMMON_BLOCKS = YES;
449 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
450 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
451 | GCC_WARN_UNDECLARED_SELECTOR = YES;
452 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
453 | GCC_WARN_UNUSED_FUNCTION = YES;
454 | GCC_WARN_UNUSED_VARIABLE = YES;
455 | HEADER_SEARCH_PATHS = "";
456 | IPHONEOS_DEPLOYMENT_TARGET = 8.1;
457 | MTL_ENABLE_DEBUG_INFO = NO;
458 | SDKROOT = iphoneos;
459 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
460 | TARGETED_DEVICE_FAMILY = "1,2";
461 | VALIDATE_PRODUCT = YES;
462 | };
463 | name = Release;
464 | };
465 | EC2AC1891A7D0F5D00CF3EC8 /* Debug */ = {
466 | isa = XCBuildConfiguration;
467 | baseConfigurationReference = F1DAAD528B1A7AB5016C898D /* Pods-libpd-Swift-sample.debug.xcconfig */;
468 | buildSettings = {
469 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
470 | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
471 | CLANG_ENABLE_MODULES = YES;
472 | CODE_SIGN_IDENTITY = "iPhone Developer";
473 | DEVELOPMENT_TEAM = U29G7GS2GP;
474 | HEADER_SEARCH_PATHS = (
475 | "${SRCROOT}/Pods/**",
476 | "$(inherited)",
477 | );
478 | INFOPLIST_FILE = "libpd-Swift-sample/Info.plist";
479 | IPHONEOS_DEPLOYMENT_TARGET = 8.1;
480 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
481 | PRODUCT_BUNDLE_IDENTIFIER = foo.bar;
482 | PRODUCT_NAME = "$(TARGET_NAME)";
483 | SWIFT_OBJC_BRIDGING_HEADER = "libpd-Swift-sample/libpd-Swift-sample-Bridging-Header.h";
484 | SWIFT_OPTIMIZATION_LEVEL = "-Onone";
485 | SWIFT_VERSION = 5.0;
486 | USER_HEADER_SEARCH_PATHS = "";
487 | };
488 | name = Debug;
489 | };
490 | EC2AC18A1A7D0F5D00CF3EC8 /* Release */ = {
491 | isa = XCBuildConfiguration;
492 | baseConfigurationReference = BB992DF9D91E6AFE852F389E /* Pods-libpd-Swift-sample.release.xcconfig */;
493 | buildSettings = {
494 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
495 | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
496 | CLANG_ENABLE_MODULES = YES;
497 | CODE_SIGN_IDENTITY = "iPhone Developer";
498 | DEVELOPMENT_TEAM = U29G7GS2GP;
499 | HEADER_SEARCH_PATHS = (
500 | "${SRCROOT}/Pods/**",
501 | "$(inherited)",
502 | );
503 | INFOPLIST_FILE = "libpd-Swift-sample/Info.plist";
504 | IPHONEOS_DEPLOYMENT_TARGET = 8.1;
505 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
506 | PRODUCT_BUNDLE_IDENTIFIER = foo.bar;
507 | PRODUCT_NAME = "$(TARGET_NAME)";
508 | SWIFT_OBJC_BRIDGING_HEADER = "libpd-Swift-sample/libpd-Swift-sample-Bridging-Header.h";
509 | SWIFT_VERSION = 5.0;
510 | USER_HEADER_SEARCH_PATHS = "";
511 | };
512 | name = Release;
513 | };
514 | EC2AC18C1A7D0F5D00CF3EC8 /* Debug */ = {
515 | isa = XCBuildConfiguration;
516 | buildSettings = {
517 | BUNDLE_LOADER = "$(TEST_HOST)";
518 | FRAMEWORK_SEARCH_PATHS = "$(inherited)";
519 | GCC_PREPROCESSOR_DEFINITIONS = (
520 | "DEBUG=1",
521 | "$(inherited)",
522 | );
523 | INFOPLIST_FILE = "libpd-Swift-sampleTests/Info.plist";
524 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
525 | PRODUCT_BUNDLE_IDENTIFIER = "jp.blowbend.ios.sample.$(PRODUCT_NAME:rfc1034identifier)";
526 | PRODUCT_NAME = "$(TARGET_NAME)";
527 | SWIFT_SWIFT3_OBJC_INFERENCE = On;
528 | SWIFT_VERSION = 4.0;
529 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/libpd-Swift-sample.app/libpd-Swift-sample";
530 | };
531 | name = Debug;
532 | };
533 | EC2AC18D1A7D0F5D00CF3EC8 /* Release */ = {
534 | isa = XCBuildConfiguration;
535 | buildSettings = {
536 | BUNDLE_LOADER = "$(TEST_HOST)";
537 | FRAMEWORK_SEARCH_PATHS = "$(inherited)";
538 | INFOPLIST_FILE = "libpd-Swift-sampleTests/Info.plist";
539 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
540 | PRODUCT_BUNDLE_IDENTIFIER = "jp.blowbend.ios.sample.$(PRODUCT_NAME:rfc1034identifier)";
541 | PRODUCT_NAME = "$(TARGET_NAME)";
542 | SWIFT_SWIFT3_OBJC_INFERENCE = On;
543 | SWIFT_VERSION = 4.0;
544 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/libpd-Swift-sample.app/libpd-Swift-sample";
545 | };
546 | name = Release;
547 | };
548 | /* End XCBuildConfiguration section */
549 |
550 | /* Begin XCConfigurationList section */
551 | EC2AC1641A7D0F5C00CF3EC8 /* Build configuration list for PBXProject "libpd-Swift-sample" */ = {
552 | isa = XCConfigurationList;
553 | buildConfigurations = (
554 | EC2AC1861A7D0F5D00CF3EC8 /* Debug */,
555 | EC2AC1871A7D0F5D00CF3EC8 /* Release */,
556 | );
557 | defaultConfigurationIsVisible = 0;
558 | defaultConfigurationName = Release;
559 | };
560 | EC2AC1881A7D0F5D00CF3EC8 /* Build configuration list for PBXNativeTarget "libpd-Swift-sample" */ = {
561 | isa = XCConfigurationList;
562 | buildConfigurations = (
563 | EC2AC1891A7D0F5D00CF3EC8 /* Debug */,
564 | EC2AC18A1A7D0F5D00CF3EC8 /* Release */,
565 | );
566 | defaultConfigurationIsVisible = 0;
567 | defaultConfigurationName = Release;
568 | };
569 | EC2AC18B1A7D0F5D00CF3EC8 /* Build configuration list for PBXNativeTarget "libpd-Swift-sampleTests" */ = {
570 | isa = XCConfigurationList;
571 | buildConfigurations = (
572 | EC2AC18C1A7D0F5D00CF3EC8 /* Debug */,
573 | EC2AC18D1A7D0F5D00CF3EC8 /* Release */,
574 | );
575 | defaultConfigurationIsVisible = 0;
576 | defaultConfigurationName = Release;
577 | };
578 | /* End XCConfigurationList section */
579 | };
580 | rootObject = EC2AC1611A7D0F5C00CF3EC8 /* Project object */;
581 | }
582 |
--------------------------------------------------------------------------------
/libpd-Swift-sample/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.swift
3 | // libpd-Swift-sample
4 | //
5 | // Created by Hidehisa YOKOYAMA on 2015/01/31.
6 | // Copyright (c) 2015 Hidehisa YOKOYAMA. All rights reserved.
7 | //
8 |
9 | import UIKit
10 | import libpd
11 |
12 | @UIApplicationMain
13 | class AppDelegate: UIResponder, UIApplicationDelegate {
14 |
15 | var window: UIWindow?
16 | var audioController: PdAudioController?
17 |
18 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
19 |
20 | //libpd
21 | audioController = PdAudioController()
22 | if let c = audioController {
23 | //let s = c.configurePlaybackWithSampleRate(44100, numberChannels: 2, inputEnabled: false, mixingEnabled: true).toPdAudioControlStatus()
24 | let s = c.configureAmbient(withSampleRate: 44100, numberChannels: 2, mixingEnabled: true).toPdAudioControlStatus()
25 | switch s {
26 | case .ok:
27 | print("success")
28 | case .error:
29 | print("unrecoverable error: failed to initialize audio components")
30 | case .propertyChanged:
31 | print("some properties have changed to run correctly (not fatal)")
32 | }
33 | } else {
34 | print("could not get PdAudioController")
35 | }
36 |
37 | return true
38 | }
39 |
40 | func applicationWillResignActive(_ application: UIApplication) {
41 | audioController?.isActive = false
42 | }
43 |
44 | func applicationDidEnterBackground(_ application: UIApplication) {
45 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
46 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
47 | }
48 |
49 | func applicationWillEnterForeground(_ application: UIApplication) {
50 | // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
51 | }
52 |
53 | func applicationDidBecomeActive(_ application: UIApplication) {
54 | audioController?.isActive = true
55 | }
56 |
57 | func applicationWillTerminate(_ application: UIApplication) {
58 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
59 | }
60 | }
61 |
62 | // MARK: - CONVERT ENUM FOR SWIFT
63 |
64 | extension PdAudioStatus {
65 | enum PdAudioControlStatus {
66 | case ok
67 | case error
68 | case propertyChanged
69 | }
70 | func toPdAudioControlStatus() -> PdAudioControlStatus {
71 | switch self.rawValue {
72 | case 0: //
73 | return .ok
74 | case -1: //
75 | return .error
76 | default: //
77 | return .propertyChanged
78 | }
79 | }
80 | }
81 |
--------------------------------------------------------------------------------
/libpd-Swift-sample/Base.lproj/Main.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
34 |
43 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
--------------------------------------------------------------------------------
/libpd-Swift-sample/ConstantValues.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ConstantValues.swift
3 | // libpd-Swift-sample
4 | //
5 | // Created by Hidehisa YOKOYAMA on 2015/10/08.
6 | // Copyright © 2015 Hidehisa YOKOYAMA. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | struct ConstantValues {
12 | //key of userdefault
13 | static let kUserDefaultSettingsBundleVersion = "settings_bundle_version" //version number
14 | static let kUserDefaultSettingsBundleBuild = "settings_bundle_build" //build number
15 | }
16 |
--------------------------------------------------------------------------------
/libpd-Swift-sample/Images.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "29x29",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "29x29",
11 | "scale" : "3x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "40x40",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "iphone",
20 | "size" : "40x40",
21 | "scale" : "3x"
22 | },
23 | {
24 | "idiom" : "iphone",
25 | "size" : "60x60",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "iphone",
30 | "size" : "60x60",
31 | "scale" : "3x"
32 | },
33 | {
34 | "idiom" : "ipad",
35 | "size" : "29x29",
36 | "scale" : "1x"
37 | },
38 | {
39 | "idiom" : "ipad",
40 | "size" : "29x29",
41 | "scale" : "2x"
42 | },
43 | {
44 | "idiom" : "ipad",
45 | "size" : "40x40",
46 | "scale" : "1x"
47 | },
48 | {
49 | "idiom" : "ipad",
50 | "size" : "40x40",
51 | "scale" : "2x"
52 | },
53 | {
54 | "idiom" : "ipad",
55 | "size" : "76x76",
56 | "scale" : "1x"
57 | },
58 | {
59 | "idiom" : "ipad",
60 | "size" : "76x76",
61 | "scale" : "2x"
62 | }
63 | ],
64 | "info" : {
65 | "version" : 1,
66 | "author" : "xcode"
67 | }
68 | }
--------------------------------------------------------------------------------
/libpd-Swift-sample/Images.xcassets/LaunchImage.launchimage/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "orientation" : "portrait",
5 | "idiom" : "iphone",
6 | "extent" : "full-screen",
7 | "minimum-system-version" : "8.0",
8 | "subtype" : "736h",
9 | "scale" : "3x"
10 | },
11 | {
12 | "orientation" : "portrait",
13 | "idiom" : "iphone",
14 | "extent" : "full-screen",
15 | "minimum-system-version" : "8.0",
16 | "subtype" : "667h",
17 | "scale" : "2x"
18 | },
19 | {
20 | "orientation" : "portrait",
21 | "idiom" : "ipad",
22 | "extent" : "full-screen",
23 | "minimum-system-version" : "7.0",
24 | "scale" : "1x"
25 | },
26 | {
27 | "orientation" : "portrait",
28 | "idiom" : "ipad",
29 | "extent" : "full-screen",
30 | "minimum-system-version" : "7.0",
31 | "scale" : "2x"
32 | }
33 | ],
34 | "info" : {
35 | "version" : 1,
36 | "author" : "xcode"
37 | }
38 | }
--------------------------------------------------------------------------------
/libpd-Swift-sample/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | APPL
17 | CFBundleSignature
18 | ????
19 | LSRequiresIPhoneOS
20 |
21 | UILaunchStoryboardName
22 | LaunchScreen
23 | UIMainStoryboardFile
24 | Main
25 | UIRequiredDeviceCapabilities
26 |
27 | armv7
28 |
29 | UIRequiresFullScreen
30 |
31 | UISupportedInterfaceOrientations
32 |
33 | UIInterfaceOrientationPortrait
34 |
35 | UISupportedInterfaceOrientations~ipad
36 |
37 | UIInterfaceOrientationPortrait
38 | UIInterfaceOrientationPortraitUpsideDown
39 | UIInterfaceOrientationLandscapeLeft
40 | UIInterfaceOrientationLandscapeRight
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/libpd-Swift-sample/MyCounter.c:
--------------------------------------------------------------------------------
1 | /* Copyright 2015 Hidehisa Yokoyama(hidez).
2 | *
3 | * MyCounter: external object for sample
4 | *
5 | * @version 0.1.0
6 | *
7 | * inlet : bang :
8 | * outlet : float : number of counter
9 | */
10 |
11 | #include "m_pd.h"
12 |
13 | /* -------------------------- MyCounter ------------------------------ */
14 |
15 | static t_class *MyCounter_class;
16 |
17 | typedef struct _MyCounter{
18 | t_object x_obj;
19 | t_outlet *x_outlet;
20 | t_int i_counter;
21 | } t_MyCounter;
22 |
23 | void MyCounter_bang(t_MyCounter *x){
24 | t_float f = x->i_counter;
25 | x->i_counter++;
26 | outlet_float(x->x_outlet, f);
27 | }
28 |
29 | void *MyCounter_new(){
30 | t_MyCounter *x = (t_MyCounter *)pd_new(MyCounter_class);
31 | x->x_outlet = outlet_new(&x->x_obj, gensym("float"));
32 | x->i_counter = 0;
33 | return (void *)x;
34 | }
35 |
36 | void MyCounter_setup(void){
37 | MyCounter_class = class_new(gensym("MyCounter"), (t_newmethod)MyCounter_new, 0, sizeof(t_MyCounter), CLASS_DEFAULT, A_DEFFLOAT, 0);
38 | class_addbang(MyCounter_class, MyCounter_bang);
39 | }
40 |
41 | /* -------------------------- end of source -------------------------- */
--------------------------------------------------------------------------------
/libpd-Swift-sample/MyCounter.h:
--------------------------------------------------------------------------------
1 | //
2 | // MyCounter.h
3 | // libpd-Swift-sample
4 | //
5 | // Created by Hidehisa YOKOYAMA on 2015/02/01.
6 | // Copyright (c) 2015 Hidehisa YOKOYAMA. All rights reserved.
7 | //
8 |
9 | #ifndef libpd_Swift_sample_MyCounter_h
10 | #define libpd_Swift_sample_MyCounter_h
11 |
12 | void MyCounter_setup(void);
13 |
14 | #endif
15 |
--------------------------------------------------------------------------------
/libpd-Swift-sample/Resources/sample.pd:
--------------------------------------------------------------------------------
1 | #N canvas 1094 23 476 450 10;
2 | #X obj -624 246 dac~;
3 | #X obj -614 136 osc~ 440;
4 | #X obj -527 134 line~;
5 | #X obj -614 183 *~;
6 | #X obj -527 69 r tuning_fork_on;
7 | #X obj -414 70 r tuning_fork_off;
8 | #X obj -614 213 hip~ 5;
9 | #X msg -387 170 stop;
10 | #X obj -353 236 s bang_bang;
11 | #X obj -387 201 metro 1000;
12 | #X obj -387 298 s counter;
13 | #X msg -346 170 0;
14 | #X msg -414 97 0 200;
15 | #X msg -527 96 0.9 200;
16 | #X obj -387 267 MyCounter;
17 | #X connect 1 0 3 0;
18 | #X connect 2 0 3 1;
19 | #X connect 3 0 6 0;
20 | #X connect 4 0 13 0;
21 | #X connect 4 0 9 0;
22 | #X connect 5 0 12 0;
23 | #X connect 5 0 7 0;
24 | #X connect 5 0 11 0;
25 | #X connect 6 0 0 1;
26 | #X connect 6 0 0 0;
27 | #X connect 7 0 9 0;
28 | #X connect 9 0 8 0;
29 | #X connect 9 0 14 0;
30 | #X connect 12 0 2 0;
31 | #X connect 13 0 2 0;
32 | #X connect 14 0 10 0;
33 |
--------------------------------------------------------------------------------
/libpd-Swift-sample/ViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.swift
3 | // libpd-Swift-sample
4 | //
5 | // Created by Hidehisa YOKOYAMA on 2015/01/31.
6 | // Copyright (c) 2015 Hidehisa YOKOYAMA. All rights reserved.
7 | //
8 |
9 | import UIKit
10 | import libpd
11 |
12 | class ViewController: UIViewController, PdListener {
13 | var dispatcher: PdDispatcher?
14 |
15 | @IBOutlet weak var labelCounter: UILabel!
16 |
17 | // MARK: - LIFE CYCLE OF VIEW CONTROLLER METHOD
18 |
19 | override func viewDidLoad() {
20 | super.viewDidLoad()
21 |
22 | let v = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String //バージョン番号
23 | let b = Bundle.main.infoDictionary?["CFBundleVersion"] as? String //ビルド番号
24 | let d = UserDefaults.standard
25 | d.set(v, forKey: ConstantValues.kUserDefaultSettingsBundleVersion) //バージョン番号
26 | d.set(b, forKey: ConstantValues.kUserDefaultSettingsBundleBuild) //ビルド番号
27 | d.synchronize()
28 |
29 | //libpd
30 | dispatcher = PdDispatcher()
31 | dispatcher?.add(self, forSource: "bang_bang")
32 | dispatcher?.add(self, forSource: "counter")
33 | PdBase.setDelegate(dispatcher)
34 | MyCounter_setup() //external
35 |
36 | if PdBase.openFile("sample.pd", path: Bundle.main.resourcePath) == nil {
37 | print("Failed to open patch!")
38 | }
39 | }
40 |
41 | override func viewWillAppear(_ animated: Bool) {
42 | super.viewWillAppear(true)
43 |
44 | self.labelCounter.text = "0"
45 | PdBase.sendBang(toReceiver: "tuning_fork_off") //libpd
46 | }
47 |
48 | override func didReceiveMemoryWarning() {
49 | super.didReceiveMemoryWarning()
50 | // Dispose of any resources that can be recreated.
51 | }
52 |
53 | // MARK: - ACTION EVENT METHOD
54 |
55 | @IBAction func buttonOnPressed(_ sender: AnyObject) {
56 | PdBase.sendBang(toReceiver: "tuning_fork_on") //libpd
57 | }
58 |
59 | @IBAction func buttonOffPressed(_ sender: AnyObject) {
60 | PdBase.sendBang(toReceiver: "tuning_fork_off") //libpd
61 | }
62 |
63 | // MARK: - PdListener CALLBACK
64 |
65 | func receiveBang(fromSource source: String!) {
66 | if source == "bang_bang" {
67 | print("receive bang!")
68 | }
69 | }
70 |
71 | func receive(_ received: Float, fromSource source: String!) {
72 | if source == "counter" {
73 | self.labelCounter.text = "\(Int(received))"
74 | }
75 | }
76 | }
77 |
--------------------------------------------------------------------------------
/libpd-Swift-sample/libpd-Swift-sample-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | //
2 | // Use this file to import your target's public headers that you would like to expose to Swift.
3 | //
4 |
5 | #import "MyCounter.h"
6 |
--------------------------------------------------------------------------------
/libpd-Swift-sampleTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1
23 |
24 |
25 |
--------------------------------------------------------------------------------
/libpd-Swift-sampleTests/libpd_Swift_sampleTests.swift:
--------------------------------------------------------------------------------
1 | //
2 | // libpd_Swift_sampleTests.swift
3 | // libpd-Swift-sampleTests
4 | //
5 | // Created by Hidehisa YOKOYAMA on 2015/01/31.
6 | // Copyright (c) 2015年 Hidehisa YOKOYAMA. All rights reserved.
7 | //
8 |
9 | import UIKit
10 | import XCTest
11 |
12 | class libpd_Swift_sampleTests: XCTestCase {
13 |
14 | override func setUp() {
15 | super.setUp()
16 | // Put setup code here. This method is called before the invocation of each test method in the class.
17 | }
18 |
19 | override func tearDown() {
20 | // Put teardown code here. This method is called after the invocation of each test method in the class.
21 | super.tearDown()
22 | }
23 |
24 | func testExample() {
25 | // This is an example of a functional test case.
26 | XCTAssert(true, "Pass")
27 | }
28 |
29 | func testPerformanceExample() {
30 | // This is an example of a performance test case.
31 | self.measure() {
32 | // Put the code you want to measure the time of here.
33 | }
34 | }
35 |
36 | }
37 |
--------------------------------------------------------------------------------