mirror of https://github.com/AxioDL/amuse.git
Initial UI files for AudioUnit container
This commit is contained in:
parent
d71f9f62b8
commit
51b3e24cfb
|
@ -0,0 +1,14 @@
|
||||||
|
<?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>com.apple.application-identifier</key>
|
||||||
|
<string>@APPLE_TEAM_ID@.@APPLE_BUNDLE_ID@</string>
|
||||||
|
<key>com.apple.developer.team-identifier</key>
|
||||||
|
<string>@APPLE_TEAM_ID@</string>
|
||||||
|
<key>com.apple.security.application-groups</key>
|
||||||
|
<array>
|
||||||
|
<string>group.io.github.axiodl.Amuse.AudioGroups</string>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
|
@ -0,0 +1,530 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="10116" systemVersion="15F34" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
|
||||||
|
<dependencies>
|
||||||
|
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="10116"/>
|
||||||
|
</dependencies>
|
||||||
|
<objects>
|
||||||
|
<customObject id="-2" userLabel="File's Owner" customClass="NSApplication"/>
|
||||||
|
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||||
|
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
|
||||||
|
<customObject id="YLy-65-1bz" customClass="NSFontManager"/>
|
||||||
|
<menu title="Main Menu" systemMenu="main" id="AYu-sK-qS6">
|
||||||
|
<items>
|
||||||
|
<menuItem title="Amuse" id="1Xt-HY-uBw">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<menu key="submenu" title="Amuse" systemMenu="apple" id="uQy-DD-JDr">
|
||||||
|
<items>
|
||||||
|
<menuItem title="About Amuse" id="5kV-Vb-QxS">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="orderFrontStandardAboutPanel:" target="-1" id="Exp-CZ-Vem"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem isSeparatorItem="YES" id="VOq-y0-SEH"/>
|
||||||
|
<menuItem title="Preferences…" keyEquivalent="," id="BOF-NM-1cW"/>
|
||||||
|
<menuItem isSeparatorItem="YES" id="wFC-TO-SCJ"/>
|
||||||
|
<menuItem title="Hide Amuse" keyEquivalent="h" id="Olw-nP-bQN">
|
||||||
|
<connections>
|
||||||
|
<action selector="hide:" target="-1" id="PnN-Uc-m68"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem title="Hide Others" keyEquivalent="h" id="Vdr-fp-XzO">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="hideOtherApplications:" target="-1" id="VT4-aY-XCT"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem title="Show All" id="Kd2-mp-pUS">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="unhideAllApplications:" target="-1" id="Dhg-Le-xox"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem isSeparatorItem="YES" id="kCx-OE-vgT"/>
|
||||||
|
<menuItem title="Quit Amuse" keyEquivalent="q" id="4sb-4s-VLi">
|
||||||
|
<connections>
|
||||||
|
<action selector="terminate:" target="-1" id="Te7-pn-YzF"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
</items>
|
||||||
|
</menu>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem title="File" id="dMs-cI-mzQ">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<menu key="submenu" title="File" id="bib-Uj-vzu">
|
||||||
|
<items>
|
||||||
|
<menuItem title="Import…" keyEquivalent="i" id="IAo-SY-fd9">
|
||||||
|
<connections>
|
||||||
|
<action selector="openDocument:" target="-1" id="bVn-NM-KNZ"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
</items>
|
||||||
|
</menu>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem title="Edit" id="5QF-Oa-p0T">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<menu key="submenu" title="Edit" id="W48-6f-4Dl">
|
||||||
|
<items>
|
||||||
|
<menuItem title="Delete" id="pa3-QI-u2k">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="delete:" target="-1" id="0Mk-Ml-PaM"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem title="Select All" keyEquivalent="a" id="Ruw-6m-B2m">
|
||||||
|
<connections>
|
||||||
|
<action selector="selectAll:" target="-1" id="VNm-Mi-diN"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
</items>
|
||||||
|
</menu>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem title="View" id="H8h-7b-M4v">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<menu key="submenu" title="View" id="HyV-fh-RgO">
|
||||||
|
<items>
|
||||||
|
<menuItem title="Show Toolbar" keyEquivalent="t" id="snW-S8-Cw5">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="toggleToolbarShown:" target="-1" id="BXY-wc-z0C"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
</items>
|
||||||
|
</menu>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem title="Window" id="aUF-d1-5bR">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<menu key="submenu" title="Window" systemMenu="window" id="Td7-aD-5lo">
|
||||||
|
<items>
|
||||||
|
<menuItem title="Minimize" keyEquivalent="m" id="OY7-WF-poV">
|
||||||
|
<connections>
|
||||||
|
<action selector="performMiniaturize:" target="-1" id="VwT-WD-YPe"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem title="Zoom" id="R4o-n2-Eq4">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="performZoom:" target="-1" id="DIl-cC-cCs"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem isSeparatorItem="YES" id="eu3-7i-yIM"/>
|
||||||
|
<menuItem title="Bring All to Front" id="LE2-aR-0XJ">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="arrangeInFront:" target="-1" id="DRN-fu-gQh"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
</items>
|
||||||
|
</menu>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem title="Help" id="wpr-3q-Mcd">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<menu key="submenu" title="Help" systemMenu="help" id="F2S-fz-NVQ">
|
||||||
|
<items>
|
||||||
|
<menuItem title="Amuse Help" keyEquivalent="?" id="FKE-Sm-Kum">
|
||||||
|
<connections>
|
||||||
|
<action selector="showHelp:" target="-1" id="y7X-2Q-9no"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
</items>
|
||||||
|
</menu>
|
||||||
|
</menuItem>
|
||||||
|
</items>
|
||||||
|
</menu>
|
||||||
|
<window title="Amuse" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" oneShot="NO" releasedWhenClosed="NO" showsToolbarButton="NO" frameAutosaveName="" animationBehavior="default" id="FDh-Mc-OFY">
|
||||||
|
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
|
||||||
|
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
|
||||||
|
<rect key="contentRect" x="283" y="305" width="480" height="270"/>
|
||||||
|
<rect key="screenRect" x="0.0" y="0.0" width="2560" height="1417"/>
|
||||||
|
<view key="contentView" id="9Rk-3e-xVS">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="480" height="270"/>
|
||||||
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
|
<subviews>
|
||||||
|
<tabView fixedFrame="YES" type="noTabsNoBorder" translatesAutoresizingMaskIntoConstraints="NO" id="Kht-FW-Kf6">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="480" height="270"/>
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<tabViewItems>
|
||||||
|
<tabViewItem label="Data" identifier="1" id="93v-oY-J6h">
|
||||||
|
<view key="view" ambiguous="YES" id="GKx-9K-n29">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="480" height="270"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<scrollView fixedFrame="YES" autohidesScrollers="YES" horizontalLineScroll="19" horizontalPageScroll="10" verticalLineScroll="19" verticalPageScroll="10" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="XHK-NM-ZAP">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="480" height="235"/>
|
||||||
|
<clipView key="contentView" ambiguous="YES" id="cFf-wa-ZPx">
|
||||||
|
<rect key="frame" x="1" y="23" width="478" height="211"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<outlineView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" multipleSelection="NO" autosaveColumns="NO" rowSizeStyle="automatic" headerView="jN4-UQ-VfT" viewBased="YES" indentationPerLevel="16" outlineTableColumn="DlG-iE-h1a" id="Vlv-Jw-A4U">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="478" height="211"/>
|
||||||
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
|
<size key="intercellSpacing" width="3" height="2"/>
|
||||||
|
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="gridColor" name="gridColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<tableColumns>
|
||||||
|
<tableColumn width="116" minWidth="40" maxWidth="1000" id="DlG-iE-h1a">
|
||||||
|
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border">
|
||||||
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</tableHeaderCell>
|
||||||
|
<textFieldCell key="dataCell" lineBreakMode="truncatingTail" selectable="YES" editable="YES" title="Text Cell" id="nfQ-a8-ezY">
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||||
|
<prototypeCellViews>
|
||||||
|
<tableCellView id="1eD-qr-jb9">
|
||||||
|
<rect key="frame" x="1" y="1" width="116" height="17"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="cAp-67-fuc">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="100" height="17"/>
|
||||||
|
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="n5E-QL-7SS">
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
</subviews>
|
||||||
|
<connections>
|
||||||
|
<outlet property="textField" destination="cAp-67-fuc" id="oYq-0I-143"/>
|
||||||
|
</connections>
|
||||||
|
</tableCellView>
|
||||||
|
</prototypeCellViews>
|
||||||
|
</tableColumn>
|
||||||
|
<tableColumn width="356" minWidth="40" maxWidth="1000" id="alh-ut-BoX">
|
||||||
|
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border">
|
||||||
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</tableHeaderCell>
|
||||||
|
<textFieldCell key="dataCell" lineBreakMode="truncatingTail" selectable="YES" editable="YES" title="Text Cell" id="ywm-jc-RPk">
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||||
|
<prototypeCellViews>
|
||||||
|
<tableCellView id="REu-Qt-X84">
|
||||||
|
<rect key="frame" x="120" y="1" width="356" height="17"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="zPc-LM-WxA">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="100" height="17"/>
|
||||||
|
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="wy9-p6-MVa">
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
</subviews>
|
||||||
|
<connections>
|
||||||
|
<outlet property="textField" destination="zPc-LM-WxA" id="XMS-Lt-7aA"/>
|
||||||
|
</connections>
|
||||||
|
</tableCellView>
|
||||||
|
</prototypeCellViews>
|
||||||
|
</tableColumn>
|
||||||
|
</tableColumns>
|
||||||
|
</outlineView>
|
||||||
|
</subviews>
|
||||||
|
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</clipView>
|
||||||
|
<scroller key="horizontalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="YES" id="ZGl-Ws-7HQ">
|
||||||
|
<rect key="frame" x="1" y="116.23383283615112" width="231.89535522460938" height="15"/>
|
||||||
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
|
</scroller>
|
||||||
|
<scroller key="verticalScroller" hidden="YES" verticalHuggingPriority="750" doubleValue="1" horizontal="NO" id="cwa-Vo-ZEb">
|
||||||
|
<rect key="frame" x="224" y="17" width="15" height="102"/>
|
||||||
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
|
</scroller>
|
||||||
|
<tableHeaderView key="headerView" id="jN4-UQ-VfT">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="478" height="23"/>
|
||||||
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
|
</tableHeaderView>
|
||||||
|
</scrollView>
|
||||||
|
<searchField wantsLayer="YES" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Huk-pR-ayq">
|
||||||
|
<rect key="frame" x="6" y="241" width="468" height="22"/>
|
||||||
|
<searchFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" borderStyle="bezel" usesSingleLineMode="YES" bezelStyle="round" id="u9E-Ld-d6I">
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</searchFieldCell>
|
||||||
|
</searchField>
|
||||||
|
</subviews>
|
||||||
|
</view>
|
||||||
|
</tabViewItem>
|
||||||
|
<tabViewItem label="Samples" identifier="2" id="w0a-hU-qxe">
|
||||||
|
<view key="view" id="A6d-Tc-9Ch">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="480" height="270"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<scrollView fixedFrame="YES" autohidesScrollers="YES" horizontalLineScroll="19" horizontalPageScroll="10" verticalLineScroll="19" verticalPageScroll="10" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="aIh-No-CEz">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="480" height="250"/>
|
||||||
|
<clipView key="contentView" ambiguous="YES" id="MzV-rp-Rp8">
|
||||||
|
<rect key="frame" x="1" y="23" width="478" height="226"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<tableView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" columnSelection="YES" multipleSelection="NO" autosaveColumns="NO" rowSizeStyle="automatic" headerView="fQK-tA-ezw" viewBased="YES" id="Frt-wZ-1ZI">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="478" height="226"/>
|
||||||
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
|
<size key="intercellSpacing" width="3" height="2"/>
|
||||||
|
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="gridColor" name="gridColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<tableColumns>
|
||||||
|
<tableColumn width="116" minWidth="40" maxWidth="1000" id="RF7-J2-oFq">
|
||||||
|
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border">
|
||||||
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</tableHeaderCell>
|
||||||
|
<textFieldCell key="dataCell" lineBreakMode="truncatingTail" selectable="YES" editable="YES" title="Text Cell" id="O7U-y5-ovx">
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||||
|
<prototypeCellViews>
|
||||||
|
<tableCellView id="ffN-yY-DyX">
|
||||||
|
<rect key="frame" x="1" y="1" width="116" height="17"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="DUu-Bo-MP0">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="100" height="17"/>
|
||||||
|
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="N99-9O-D40">
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
</subviews>
|
||||||
|
<connections>
|
||||||
|
<outlet property="textField" destination="DUu-Bo-MP0" id="KVw-BO-rFN"/>
|
||||||
|
</connections>
|
||||||
|
</tableCellView>
|
||||||
|
</prototypeCellViews>
|
||||||
|
</tableColumn>
|
||||||
|
<tableColumn width="356" minWidth="40" maxWidth="1000" id="MqW-cb-qx7">
|
||||||
|
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border">
|
||||||
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</tableHeaderCell>
|
||||||
|
<textFieldCell key="dataCell" lineBreakMode="truncatingTail" selectable="YES" editable="YES" title="Text Cell" id="FTl-PH-ryo">
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||||
|
<prototypeCellViews>
|
||||||
|
<tableCellView id="Syu-AI-iQO">
|
||||||
|
<rect key="frame" x="120" y="1" width="356" height="17"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="42J-2Q-ggr">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="100" height="17"/>
|
||||||
|
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="5ml-w5-V8a">
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
</subviews>
|
||||||
|
<connections>
|
||||||
|
<outlet property="textField" destination="42J-2Q-ggr" id="pLh-XE-CfB"/>
|
||||||
|
</connections>
|
||||||
|
</tableCellView>
|
||||||
|
</prototypeCellViews>
|
||||||
|
</tableColumn>
|
||||||
|
</tableColumns>
|
||||||
|
</tableView>
|
||||||
|
</subviews>
|
||||||
|
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</clipView>
|
||||||
|
<scroller key="horizontalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="YES" id="MZB-ZS-SbU">
|
||||||
|
<rect key="frame" x="1" y="119" width="223" height="15"/>
|
||||||
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
|
</scroller>
|
||||||
|
<scroller key="verticalScroller" hidden="YES" verticalHuggingPriority="750" doubleValue="1" horizontal="NO" id="X6u-4b-0Ia">
|
||||||
|
<rect key="frame" x="224" y="17" width="15" height="102"/>
|
||||||
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
|
</scroller>
|
||||||
|
<tableHeaderView key="headerView" id="fQK-tA-ezw">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="478" height="23"/>
|
||||||
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
|
</tableHeaderView>
|
||||||
|
</scrollView>
|
||||||
|
<searchField wantsLayer="YES" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="ac6-rN-emB">
|
||||||
|
<rect key="frame" x="0.0" y="248" width="480" height="22"/>
|
||||||
|
<searchFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" borderStyle="bezel" usesSingleLineMode="YES" bezelStyle="round" id="ly5-eT-c0g">
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</searchFieldCell>
|
||||||
|
</searchField>
|
||||||
|
</subviews>
|
||||||
|
</view>
|
||||||
|
</tabViewItem>
|
||||||
|
<tabViewItem label="Credits" identifier="" id="ZeL-Y6-fom">
|
||||||
|
<view key="view" id="dbr-Vj-bFR">
|
||||||
|
<rect key="frame" x="10" y="33" width="474" height="240"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<scrollView fixedFrame="YES" horizontalLineScroll="10" horizontalPageScroll="10" verticalLineScroll="10" verticalPageScroll="10" hasHorizontalScroller="NO" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="6qq-02-m71">
|
||||||
|
<rect key="frame" x="117" y="60" width="240" height="135"/>
|
||||||
|
<clipView key="contentView" ambiguous="YES" id="WiT-CK-5jR">
|
||||||
|
<rect key="frame" x="1" y="1" width="223" height="133"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<textView ambiguous="YES" importsGraphics="NO" findStyle="panel" continuousSpellChecking="YES" allowsUndo="YES" usesRuler="YES" usesFontPanel="YES" verticallyResizable="YES" allowsNonContiguousLayout="YES" quoteSubstitution="YES" dashSubstitution="YES" smartInsertDelete="YES" id="AWS-Zd-8ha">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="223" height="133"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||||
|
<size key="minSize" width="223" height="133"/>
|
||||||
|
<size key="maxSize" width="463" height="10000000"/>
|
||||||
|
<color key="insertionPointColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<size key="minSize" width="223" height="133"/>
|
||||||
|
<size key="maxSize" width="463" height="10000000"/>
|
||||||
|
</textView>
|
||||||
|
</subviews>
|
||||||
|
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||||
|
</clipView>
|
||||||
|
<scroller key="horizontalScroller" hidden="YES" verticalHuggingPriority="750" doubleValue="1" horizontal="YES" id="4qq-Z8-Vg5">
|
||||||
|
<rect key="frame" x="-100" y="-100" width="87" height="18"/>
|
||||||
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
|
</scroller>
|
||||||
|
<scroller key="verticalScroller" verticalHuggingPriority="750" doubleValue="1" horizontal="NO" id="0AQ-Tv-s5q">
|
||||||
|
<rect key="frame" x="224" y="1" width="15" height="133"/>
|
||||||
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
|
</scroller>
|
||||||
|
</scrollView>
|
||||||
|
</subviews>
|
||||||
|
</view>
|
||||||
|
</tabViewItem>
|
||||||
|
</tabViewItems>
|
||||||
|
</tabView>
|
||||||
|
</subviews>
|
||||||
|
</view>
|
||||||
|
<toolbar key="toolbar" implicitIdentifier="B4A5636B-DFED-420B-B2FF-540D729FD569" autosavesConfiguration="NO" displayMode="iconAndLabel" sizeMode="regular" id="r4I-P0-82j">
|
||||||
|
<allowedToolbarItems>
|
||||||
|
<toolbarItem implicitItemIdentifier="NSToolbarFlexibleSpaceItem" id="lGH-PH-hNt"/>
|
||||||
|
<toolbarItem implicitItemIdentifier="F03B9080-A3BB-4F91-A709-CAA1E4DC0E44" label="Data" paletteLabel="Data" tag="-1" image="DataTabIcon" id="8NY-au-6ke"/>
|
||||||
|
<toolbarItem implicitItemIdentifier="0457F818-6A13-4BB2-9620-7ABAE0BC6548" label="Samples" paletteLabel="Samples" tag="-1" image="SamplesTabIcon" id="iPf-xi-p8f"/>
|
||||||
|
<toolbarItem implicitItemIdentifier="28F8ACB3-3712-4CF5-978A-DD1B93652F33" label="Credits" paletteLabel="Credits" tag="-1" image="CreditsTabIcon" id="tCG-9P-MMA"/>
|
||||||
|
</allowedToolbarItems>
|
||||||
|
<defaultToolbarItems>
|
||||||
|
<toolbarItem reference="lGH-PH-hNt"/>
|
||||||
|
<toolbarItem reference="8NY-au-6ke"/>
|
||||||
|
<toolbarItem reference="iPf-xi-p8f"/>
|
||||||
|
<toolbarItem reference="tCG-9P-MMA"/>
|
||||||
|
<toolbarItem reference="lGH-PH-hNt"/>
|
||||||
|
</defaultToolbarItems>
|
||||||
|
</toolbar>
|
||||||
|
<point key="canvasLocation" x="813" y="615"/>
|
||||||
|
</window>
|
||||||
|
<viewController title="DataViewController" id="wPf-Gs-L5I">
|
||||||
|
<scrollView key="view" autohidesScrollers="YES" horizontalLineScroll="19" horizontalPageScroll="10" verticalLineScroll="19" verticalPageScroll="10" usesPredominantAxisScrolling="NO" id="dKX-po-msQ">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="450" height="300"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<clipView key="contentView" id="gEQ-rv-CDQ">
|
||||||
|
<rect key="frame" x="1" y="23" width="448" height="276"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<outlineView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" multipleSelection="NO" autosaveColumns="NO" rowSizeStyle="automatic" headerView="amE-2c-S5R" viewBased="YES" indentationPerLevel="16" outlineTableColumn="LkY-tF-dox" id="JW0-iO-tTq">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="448" height="276"/>
|
||||||
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
|
<size key="intercellSpacing" width="3" height="2"/>
|
||||||
|
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="gridColor" name="gridColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<tableColumns>
|
||||||
|
<tableColumn width="116" minWidth="40" maxWidth="1000" id="LkY-tF-dox">
|
||||||
|
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border">
|
||||||
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</tableHeaderCell>
|
||||||
|
<textFieldCell key="dataCell" lineBreakMode="truncatingTail" selectable="YES" editable="YES" title="Text Cell" id="FYh-Eh-fBg">
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||||
|
<prototypeCellViews>
|
||||||
|
<tableCellView id="gkB-hN-JeO">
|
||||||
|
<rect key="frame" x="1" y="1" width="116" height="17"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="VIz-DU-wfb">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="100" height="17"/>
|
||||||
|
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="2eT-YE-0RH">
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
</subviews>
|
||||||
|
<connections>
|
||||||
|
<outlet property="textField" destination="VIz-DU-wfb" id="n5F-JT-qU7"/>
|
||||||
|
</connections>
|
||||||
|
</tableCellView>
|
||||||
|
</prototypeCellViews>
|
||||||
|
</tableColumn>
|
||||||
|
<tableColumn width="326" minWidth="40" maxWidth="1000" id="udY-bI-O0d">
|
||||||
|
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border">
|
||||||
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</tableHeaderCell>
|
||||||
|
<textFieldCell key="dataCell" lineBreakMode="truncatingTail" selectable="YES" editable="YES" title="Text Cell" id="Gar-Um-c6d">
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||||
|
<prototypeCellViews>
|
||||||
|
<tableCellView id="unj-mz-1UF">
|
||||||
|
<rect key="frame" x="120" y="1" width="326" height="17"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Kb3-mZ-4EA">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="100" height="17"/>
|
||||||
|
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="co7-cU-FK6">
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
</subviews>
|
||||||
|
<connections>
|
||||||
|
<outlet property="textField" destination="Kb3-mZ-4EA" id="jNZ-55-ZpP"/>
|
||||||
|
</connections>
|
||||||
|
</tableCellView>
|
||||||
|
</prototypeCellViews>
|
||||||
|
</tableColumn>
|
||||||
|
</tableColumns>
|
||||||
|
</outlineView>
|
||||||
|
</subviews>
|
||||||
|
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</clipView>
|
||||||
|
<scroller key="horizontalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="YES" id="GB4-DT-M1V">
|
||||||
|
<rect key="frame" x="1" y="119" width="223" height="15"/>
|
||||||
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
|
</scroller>
|
||||||
|
<scroller key="verticalScroller" hidden="YES" verticalHuggingPriority="750" doubleValue="1" horizontal="NO" id="KDS-kb-Cv8">
|
||||||
|
<rect key="frame" x="224" y="17" width="15" height="102"/>
|
||||||
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
|
</scroller>
|
||||||
|
<tableHeaderView key="headerView" id="amE-2c-S5R">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="448" height="23"/>
|
||||||
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
|
</tableHeaderView>
|
||||||
|
</scrollView>
|
||||||
|
</viewController>
|
||||||
|
</objects>
|
||||||
|
<resources>
|
||||||
|
<image name="CreditsTabIcon" width="128" height="128"/>
|
||||||
|
<image name="DataTabIcon" width="128" height="128"/>
|
||||||
|
<image name="SamplesTabIcon" width="128" height="128"/>
|
||||||
|
</resources>
|
||||||
|
</document>
|
|
@ -3,19 +3,44 @@
|
||||||
#import <CoreAudioKit/AUViewController.h>
|
#import <CoreAudioKit/AUViewController.h>
|
||||||
#import "AudioUnitViewController.hpp"
|
#import "AudioUnitViewController.hpp"
|
||||||
|
|
||||||
@interface AppDelegate : NSObject <NSApplicationDelegate>
|
@interface MainView : NSView
|
||||||
{}
|
{
|
||||||
|
AudioUnitViewController* amuseVC;
|
||||||
|
}
|
||||||
|
@end
|
||||||
|
|
||||||
|
@implementation MainView
|
||||||
|
|
||||||
|
|
||||||
|
- (id)initWithFrame:(NSRect)frameRect
|
||||||
|
{
|
||||||
|
self = [super initWithFrame:frameRect];
|
||||||
|
if (!self)
|
||||||
|
return nil;
|
||||||
|
amuseVC = [[AudioUnitViewController alloc] initWithNibName:nil bundle:nil];
|
||||||
|
[self addSubview:amuseVC.view];
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL)translatesAutoresizingMaskIntoConstraints
|
||||||
|
{
|
||||||
|
return NO;
|
||||||
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@interface ViewController : NSViewController
|
@interface ViewController : NSViewController
|
||||||
{
|
{
|
||||||
|
NSWindow* _window;
|
||||||
NSButton* playButton;
|
NSButton* playButton;
|
||||||
AudioUnitViewController* amuseVC;
|
|
||||||
}
|
}
|
||||||
|
@end
|
||||||
|
|
||||||
@property (weak) IBOutlet NSView *containerView;
|
@interface AppDelegate : NSObject <NSApplicationDelegate>
|
||||||
-(IBAction)togglePlay:(id)sender;
|
{
|
||||||
|
NSWindow* mainWindow;
|
||||||
|
ViewController* containerVC;
|
||||||
|
}
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@implementation ViewController
|
@implementation ViewController
|
||||||
|
@ -54,32 +79,67 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
-(void)loadView {
|
-(void)loadView {
|
||||||
amuseVC = [[AudioUnitViewController alloc] initWithNibName:nil bundle:nil];
|
self.view = [[MainView alloc] initWithFrame:[_window contentRectForFrameRect:_window.frame]];
|
||||||
self.view = [[NSView alloc] initWithFrame:NSMakeRect(0, 0, 200, 300)];
|
}
|
||||||
[self.view addSubview:amuseVC.view];
|
|
||||||
|
|
||||||
self.view.translatesAutoresizingMaskIntoConstraints = NO;
|
- (id)initWithWindow:(NSWindow*)window
|
||||||
|
{
|
||||||
NSArray *constraints = [NSLayoutConstraint constraintsWithVisualFormat: @"H:|-[view]-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(self.view)];
|
self = [super initWithNibName:@"AmuseContainerMainMenu" bundle:nil];
|
||||||
[self.view addConstraints: constraints];
|
if (!self)
|
||||||
|
return nil;
|
||||||
constraints = [NSLayoutConstraint constraintsWithVisualFormat: @"V:|-[view]-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(self.view)];
|
_window = window;
|
||||||
[self.view addConstraints: constraints];
|
return self;
|
||||||
}
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@implementation AppDelegate
|
@implementation AppDelegate
|
||||||
|
|
||||||
|
- (void)applicationDidFinishLaunching:(NSNotification*)notification
|
||||||
|
{
|
||||||
|
[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints"];
|
||||||
|
|
||||||
|
/* App menu */
|
||||||
|
#if 0
|
||||||
|
[NSMenu alloc] ini
|
||||||
|
NSMenu* rootMenu = [[NSMenu alloc] initWithTitle:@"main"];
|
||||||
|
NSMenu* appMenu = [[NSMenu alloc] initWithTitle:@"Amuse"];
|
||||||
|
NSMenuItem* quitItem = [appMenu addItemWithTitle:@"Quit Amuse"
|
||||||
|
action:@selector(quitApp:)
|
||||||
|
keyEquivalent:@"q"];
|
||||||
|
[quitItem setKeyEquivalentModifierMask:NSCommandKeyMask];
|
||||||
|
[[rootMenu addItemWithTitle:@"Amuse"
|
||||||
|
action:nil keyEquivalent:@""] setSubmenu:appMenu];
|
||||||
|
[[NSApplication sharedApplication] setMainMenu:rootMenu];
|
||||||
|
|
||||||
|
NSRect mainScreenRect = [[NSScreen mainScreen] frame];
|
||||||
|
mainWindow = [[NSWindow alloc] initWithContentRect:NSMakeRect(mainScreenRect.size.width / 2 - 100,
|
||||||
|
mainScreenRect.size.height / 2 - 150, 200, 300)
|
||||||
|
styleMask:NSClosableWindowMask|NSTitledWindowMask
|
||||||
|
backing:NSBackingStoreBuffered
|
||||||
|
defer:YES];
|
||||||
|
[mainWindow setTitle:@"Amuse"];
|
||||||
|
[[mainWindow windowController] setShouldCascadeWindows:NO];
|
||||||
|
[mainWindow setFrameAutosaveName:@"AmuseDataWindow"];
|
||||||
|
containerVC = [[ViewController alloc] initWithWindow:mainWindow];
|
||||||
|
[mainWindow setContentViewController:containerVC];
|
||||||
|
[mainWindow makeKeyAndOrderFront:nil];
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender
|
||||||
|
{
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (IBAction)quitApp:(id)sender
|
||||||
|
{
|
||||||
|
[NSApp terminate:sender];
|
||||||
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
int main(int argc, const char * argv[]) {
|
int main(int argc, const char * argv[])
|
||||||
NSApplication* app = [NSApplication sharedApplication];
|
{
|
||||||
[app setActivationPolicy:NSApplicationActivationPolicyRegular];
|
NSApplicationMain(argc, argv);
|
||||||
|
|
||||||
/* Delegate (OS X callbacks) */
|
|
||||||
AppDelegate* delegate = [AppDelegate new];
|
|
||||||
[app setDelegate:delegate];
|
|
||||||
[app run];
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,5 +8,9 @@
|
||||||
<string>@APPLE_TEAM_ID@</string>
|
<string>@APPLE_TEAM_ID@</string>
|
||||||
<key>com.apple.security.app-sandbox</key>
|
<key>com.apple.security.app-sandbox</key>
|
||||||
<true/>
|
<true/>
|
||||||
|
<key>com.apple.security.application-groups</key>
|
||||||
|
<array>
|
||||||
|
<string>group.io.github.axiodl.Amuse.AudioGroups</string>
|
||||||
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
|
@ -0,0 +1,37 @@
|
||||||
|
#ifndef __AMUSE_AUDIOUNIT_AUDIOGROUPFILEPRESENTER_HPP__
|
||||||
|
#define __AMUSE_AUDIOUNIT_AUDIOGROUPFILEPRESENTER_HPP__
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
#include <map>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
@class AudioGroupFilePresenter;
|
||||||
|
|
||||||
|
struct AudioGroupDataCollection
|
||||||
|
{
|
||||||
|
NSURL* m_proj = nullptr; /* Only this member set for single-file containers */
|
||||||
|
NSURL* m_pool = nullptr;
|
||||||
|
NSURL* m_sdir = nullptr;
|
||||||
|
NSURL* m_samp = nullptr;
|
||||||
|
|
||||||
|
bool invalidateURL(NSURL* url);
|
||||||
|
void moveURL(NSURL* oldUrl, NSURL* newUrl);
|
||||||
|
|
||||||
|
std::unique_ptr<uint8_t[]> _coordinateRead(AudioGroupFilePresenter* presenter, size_t& szOut, NSURL* url);
|
||||||
|
|
||||||
|
std::unique_ptr<uint8_t[]> coordinateProjRead(AudioGroupFilePresenter* presenter, size_t& szOut);
|
||||||
|
std::unique_ptr<uint8_t[]> coordinatePoolRead(AudioGroupFilePresenter* presenter, size_t& szOut);
|
||||||
|
std::unique_ptr<uint8_t[]> coordinateSdirRead(AudioGroupFilePresenter* presenter, size_t& szOut);
|
||||||
|
std::unique_ptr<uint8_t[]> coordinateSampRead(AudioGroupFilePresenter* presenter, size_t& szOut);
|
||||||
|
};
|
||||||
|
|
||||||
|
@interface AudioGroupFilePresenter : NSObject <NSFilePresenter>
|
||||||
|
{
|
||||||
|
NSURL* m_groupURL;
|
||||||
|
NSOperationQueue* m_dataQueue;
|
||||||
|
std::map<std::string, AudioGroupDataCollection> m_audioGroupCollections;
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
#endif // __AMUSE_AUDIOUNIT_AUDIOGROUPFILEPRESENTER_HPP__
|
|
@ -0,0 +1,191 @@
|
||||||
|
#include "AudioGroupFilePresenter.hpp"
|
||||||
|
#include <athena/FileReader.hpp>
|
||||||
|
|
||||||
|
@implementation AudioGroupFilePresenter
|
||||||
|
|
||||||
|
- (NSURL*)presentedItemURL
|
||||||
|
{
|
||||||
|
return m_groupURL;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSOperationQueue*)presentedItemOperationQueue
|
||||||
|
{
|
||||||
|
return m_dataQueue;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool AudioGroupDataCollection::invalidateURL(NSURL* url)
|
||||||
|
{
|
||||||
|
bool valid = false;
|
||||||
|
if (m_proj)
|
||||||
|
{
|
||||||
|
if ([m_proj isEqual:url])
|
||||||
|
m_proj = nullptr;
|
||||||
|
valid |= m_proj != nullptr;
|
||||||
|
}
|
||||||
|
if (m_pool)
|
||||||
|
{
|
||||||
|
if ([m_pool isEqual:url])
|
||||||
|
m_pool = nullptr;
|
||||||
|
valid |= m_pool != nullptr;
|
||||||
|
}
|
||||||
|
if (m_sdir)
|
||||||
|
{
|
||||||
|
if ([m_sdir isEqual:url])
|
||||||
|
m_sdir = nullptr;
|
||||||
|
valid |= m_sdir != nullptr;
|
||||||
|
}
|
||||||
|
if (m_samp)
|
||||||
|
{
|
||||||
|
if ([m_samp isEqual:url])
|
||||||
|
m_samp = nullptr;
|
||||||
|
valid |= m_samp != nullptr;
|
||||||
|
}
|
||||||
|
return valid;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AudioGroupDataCollection::moveURL(NSURL* oldUrl, NSURL* newUrl)
|
||||||
|
{
|
||||||
|
if (m_proj)
|
||||||
|
{
|
||||||
|
if ([m_proj isEqual:oldUrl])
|
||||||
|
m_proj = newUrl;
|
||||||
|
}
|
||||||
|
if (m_pool)
|
||||||
|
{
|
||||||
|
if ([m_pool isEqual:oldUrl])
|
||||||
|
m_pool = newUrl;
|
||||||
|
}
|
||||||
|
if (m_sdir)
|
||||||
|
{
|
||||||
|
if ([m_sdir isEqual:oldUrl])
|
||||||
|
m_sdir = newUrl;
|
||||||
|
}
|
||||||
|
if (m_samp)
|
||||||
|
{
|
||||||
|
if ([m_samp isEqual:oldUrl])
|
||||||
|
m_samp = newUrl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
std::unique_ptr<uint8_t[]> AudioGroupDataCollection::_coordinateRead(AudioGroupFilePresenter* presenter, size_t& szOut, NSURL* url)
|
||||||
|
{
|
||||||
|
NSFileCoordinator* coord = [[NSFileCoordinator alloc] initWithFilePresenter:presenter];
|
||||||
|
if (!coord)
|
||||||
|
return {};
|
||||||
|
NSError* err;
|
||||||
|
__block std::unique_ptr<uint8_t[]> ret;
|
||||||
|
__block size_t retSz = 0;
|
||||||
|
[coord coordinateReadingItemAtURL:url options:NSFileCoordinatorReadingResolvesSymbolicLink error:&err
|
||||||
|
byAccessor:^(NSURL* newUrl)
|
||||||
|
{
|
||||||
|
athena::io::FileReader r([[newUrl path] UTF8String], 1024 * 32, false);
|
||||||
|
if (r.hasError())
|
||||||
|
return;
|
||||||
|
retSz = r.length();
|
||||||
|
ret = r.readUBytes(retSz);
|
||||||
|
}];
|
||||||
|
szOut = retSz;
|
||||||
|
return std::move(ret);
|
||||||
|
}
|
||||||
|
|
||||||
|
std::unique_ptr<uint8_t[]> AudioGroupDataCollection::coordinateProjRead(AudioGroupFilePresenter* presenter, size_t& szOut)
|
||||||
|
{
|
||||||
|
if (!m_proj)
|
||||||
|
return {};
|
||||||
|
return _coordinateRead(presenter, szOut, m_proj);
|
||||||
|
}
|
||||||
|
|
||||||
|
std::unique_ptr<uint8_t[]> AudioGroupDataCollection::coordinatePoolRead(AudioGroupFilePresenter* presenter, size_t& szOut)
|
||||||
|
{
|
||||||
|
if (!m_pool)
|
||||||
|
return {};
|
||||||
|
return _coordinateRead(presenter, szOut, m_pool);
|
||||||
|
}
|
||||||
|
|
||||||
|
std::unique_ptr<uint8_t[]> AudioGroupDataCollection::coordinateSdirRead(AudioGroupFilePresenter* presenter, size_t& szOut)
|
||||||
|
{
|
||||||
|
if (!m_sdir)
|
||||||
|
return {};
|
||||||
|
return _coordinateRead(presenter, szOut, m_sdir);
|
||||||
|
}
|
||||||
|
|
||||||
|
std::unique_ptr<uint8_t[]> AudioGroupDataCollection::coordinateSampRead(AudioGroupFilePresenter* presenter, size_t& szOut)
|
||||||
|
{
|
||||||
|
if (!m_samp)
|
||||||
|
return {};
|
||||||
|
return _coordinateRead(presenter, szOut, m_samp);
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)accommodatePresentedSubitemDeletionAtURL:(NSURL*)url completionHandler:(void (^)(NSError* errorOrNil))completionHandler
|
||||||
|
{
|
||||||
|
for (auto it = m_audioGroupCollections.begin() ; it != m_audioGroupCollections.end() ;)
|
||||||
|
{
|
||||||
|
std::pair<const std::string, AudioGroupDataCollection>& pair = *it;
|
||||||
|
if (pair.second.invalidateURL(url))
|
||||||
|
{
|
||||||
|
it = m_audioGroupCollections.erase(it);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
++it;
|
||||||
|
}
|
||||||
|
completionHandler(nil);
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)presentedSubitemDidAppearAtURL:(NSURL*)url
|
||||||
|
{
|
||||||
|
NSString* path = [url path];
|
||||||
|
if (!path)
|
||||||
|
return;
|
||||||
|
|
||||||
|
NSString* extension = [url pathExtension];
|
||||||
|
NSString* lastComp = [url lastPathComponent];
|
||||||
|
lastComp = [lastComp substringToIndex:[lastComp length] - [extension length]];
|
||||||
|
AudioGroupDataCollection& collection = m_audioGroupCollections[[lastComp UTF8String]];
|
||||||
|
|
||||||
|
if ([extension isEqualToString:@"pro"] || [extension isEqualToString:@"proj"])
|
||||||
|
{
|
||||||
|
collection.m_proj = url;
|
||||||
|
}
|
||||||
|
else if ([extension isEqualToString:@"poo"] || [extension isEqualToString:@"pool"])
|
||||||
|
{
|
||||||
|
collection.m_pool = url;
|
||||||
|
}
|
||||||
|
else if ([extension isEqualToString:@"sdi"] || [extension isEqualToString:@"sdir"])
|
||||||
|
{
|
||||||
|
collection.m_sdir = url;
|
||||||
|
}
|
||||||
|
else if ([extension isEqualToString:@"sam"] || [extension isEqualToString:@"samp"])
|
||||||
|
{
|
||||||
|
collection.m_samp = url;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
collection.m_proj = url;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)presentedSubitemAtURL:(NSURL*)oldUrl didMoveToURL:(NSURL*)newUrl
|
||||||
|
{
|
||||||
|
for (auto it = m_audioGroupCollections.begin() ; it != m_audioGroupCollections.end() ; ++it)
|
||||||
|
{
|
||||||
|
std::pair<const std::string, AudioGroupDataCollection>& pair = *it;
|
||||||
|
pair.second.moveURL(oldUrl, newUrl);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (id)init
|
||||||
|
{
|
||||||
|
m_groupURL = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"group.io.github.axiodl.Amuse.AudioGroups"];
|
||||||
|
if (!m_groupURL)
|
||||||
|
return nil;
|
||||||
|
m_dataQueue = [NSOperationQueue new];
|
||||||
|
[NSFileCoordinator addFilePresenter:self];
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)dealloc
|
||||||
|
{
|
||||||
|
[NSFileCoordinator removeFilePresenter:self];
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
|
@ -19,25 +19,7 @@ struct AudioUnitVoiceEngine : boo::BaseAudioVoiceEngine
|
||||||
{
|
{
|
||||||
std::vector<std::unique_ptr<float[]>> m_renderBufs;
|
std::vector<std::unique_ptr<float[]>> m_renderBufs;
|
||||||
size_t m_frameBytes;
|
size_t m_frameBytes;
|
||||||
|
AudioBufferList* m_outputData = nullptr;
|
||||||
void render(AudioBufferList* outputData)
|
|
||||||
{
|
|
||||||
if (m_renderBufs.size() < outputData->mNumberBuffers)
|
|
||||||
m_renderBufs.resize(outputData->mNumberBuffers);
|
|
||||||
|
|
||||||
for (int i=0 ; i<outputData->mNumberBuffers ; ++i)
|
|
||||||
{
|
|
||||||
std::unique_ptr<float[]>& buf = m_renderBufs[i];
|
|
||||||
AudioBuffer& auBuf = outputData->mBuffers[i];
|
|
||||||
if (!auBuf.mData)
|
|
||||||
{
|
|
||||||
buf.reset(new float[auBuf.mDataByteSize]);
|
|
||||||
auBuf.mData = buf.get();
|
|
||||||
}
|
|
||||||
|
|
||||||
_pumpAndMixVoices(auBuf.mDataByteSize / 2 / 4, reinterpret_cast<float*>(auBuf.mData));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
boo::AudioChannelSet _getAvailableSet()
|
boo::AudioChannelSet _getAvailableSet()
|
||||||
{
|
{
|
||||||
|
@ -107,6 +89,21 @@ struct AudioUnitVoiceEngine : boo::BaseAudioVoiceEngine
|
||||||
|
|
||||||
void pumpAndMixVoices()
|
void pumpAndMixVoices()
|
||||||
{
|
{
|
||||||
|
if (m_renderBufs.size() < m_outputData->mNumberBuffers)
|
||||||
|
m_renderBufs.resize(m_outputData->mNumberBuffers);
|
||||||
|
|
||||||
|
for (int i=0 ; i<m_outputData->mNumberBuffers ; ++i)
|
||||||
|
{
|
||||||
|
std::unique_ptr<float[]>& buf = m_renderBufs[i];
|
||||||
|
AudioBuffer& auBuf = m_outputData->mBuffers[i];
|
||||||
|
if (!auBuf.mData)
|
||||||
|
{
|
||||||
|
buf.reset(new float[auBuf.mDataByteSize]);
|
||||||
|
auBuf.mData = buf.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
_pumpAndMixVoices(auBuf.mDataByteSize / 2 / 4, reinterpret_cast<float*>(auBuf.mData));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -185,7 +182,8 @@ struct AudioUnitVoiceEngine : boo::BaseAudioVoiceEngine
|
||||||
|
|
||||||
- (AUInternalRenderBlock)internalRenderBlock
|
- (AUInternalRenderBlock)internalRenderBlock
|
||||||
{
|
{
|
||||||
AudioUnitVoiceEngine& voxEngine = static_cast<AudioUnitVoiceEngine&>(*m_booBackend);
|
__block AudioUnitVoiceEngine& voxEngine = static_cast<AudioUnitVoiceEngine&>(*m_booBackend);
|
||||||
|
__block amuse::Engine& amuseEngine = *m_engine;
|
||||||
|
|
||||||
return ^AUAudioUnitStatus(AudioUnitRenderActionFlags* actionFlags, const AudioTimeStamp* timestamp,
|
return ^AUAudioUnitStatus(AudioUnitRenderActionFlags* actionFlags, const AudioTimeStamp* timestamp,
|
||||||
AUAudioFrameCount frameCount, NSInteger outputBusNumber, AudioBufferList* outputData,
|
AUAudioFrameCount frameCount, NSInteger outputBusNumber, AudioBufferList* outputData,
|
||||||
|
@ -206,7 +204,8 @@ struct AudioUnitVoiceEngine : boo::BaseAudioVoiceEngine
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Output buffers */
|
/* Output buffers */
|
||||||
voxEngine.render(outputData);
|
voxEngine.m_outputData = outputData;
|
||||||
|
amuseEngine.pumpEngine();
|
||||||
return noErr;
|
return noErr;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,5 +26,7 @@
|
||||||
<string>10.11</string>
|
<string>10.11</string>
|
||||||
<key>NSPrincipalClass</key>
|
<key>NSPrincipalClass</key>
|
||||||
<string>NSApplication</string>
|
<string>NSApplication</string>
|
||||||
|
<key>NSMainNibFile</key>
|
||||||
|
<string>AmuseContainerMainMenu</string>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
|
|
@ -81,7 +81,7 @@ if(TARGET boo)
|
||||||
if (NOT (AUDIOUNIT_LIBRARY STREQUAL AUDIOUNIT_LIBRARY-NOTFOUND))
|
if (NOT (AUDIOUNIT_LIBRARY STREQUAL AUDIOUNIT_LIBRARY-NOTFOUND))
|
||||||
set(CMAKE_INSTALL_PREFIX "${CMAKE_CURRENT_BINARY_DIR}")
|
set(CMAKE_INSTALL_PREFIX "${CMAKE_CURRENT_BINARY_DIR}")
|
||||||
|
|
||||||
# Search for provision profile to make AudioUnit on OS X
|
# Search for provision profile to make AudioUnit extension on OS X
|
||||||
unset(PROV_PROFILE)
|
unset(PROV_PROFILE)
|
||||||
file(GLOB PROV_FILES "$ENV{HOME}/Library/MobileDevice/Provisioning Profiles/*.provisionprofile")
|
file(GLOB PROV_FILES "$ENV{HOME}/Library/MobileDevice/Provisioning Profiles/*.provisionprofile")
|
||||||
foreach(FILE ${PROV_FILES})
|
foreach(FILE ${PROV_FILES})
|
||||||
|
@ -96,14 +96,15 @@ if(TARGET boo)
|
||||||
|
|
||||||
# Extension App
|
# Extension App
|
||||||
add_executable(amuse-au MACOSX_BUNDLE AudioUnit/AudioUnitBackend.hpp AudioUnit/AudioUnitBackend.mm
|
add_executable(amuse-au MACOSX_BUNDLE AudioUnit/AudioUnitBackend.hpp AudioUnit/AudioUnitBackend.mm
|
||||||
AudioUnit/AudioUnitViewController.hpp AudioUnit/AudioUnitViewController.mm)
|
AudioUnit/AudioUnitViewController.hpp AudioUnit/AudioUnitViewController.mm
|
||||||
|
AudioUnit/AudioGroupFilePresenter.hpp AudioUnit/AudioGroupFilePresenter.mm)
|
||||||
|
|
||||||
set(APPLE_BUNDLE_ID "io.github.axiodl.Amuse.AudioUnit")
|
set(APPLE_BUNDLE_ID "io.github.axiodl.Amuse.AudioUnit")
|
||||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/AudioUnit/Amuse.entitlements.in
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/AudioUnit/AmuseExtension.entitlements.in
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/AmuseExtension.entitlements)
|
${CMAKE_CURRENT_BINARY_DIR}/AmuseExtension.entitlements)
|
||||||
|
|
||||||
target_link_libraries(amuse-au amuse boo soxr ${AUDIOUNIT_LIBRARY} ${COREAUDIOKIT_LIBRARY}
|
target_link_libraries(amuse-au amuse boo soxr ${AUDIOUNIT_LIBRARY} ${COREAUDIOKIT_LIBRARY}
|
||||||
${AVFOUNDATION_LIBRARY} ${BOO_SYS_LIBS} logvisor)
|
${AVFOUNDATION_LIBRARY} ${BOO_SYS_LIBS} logvisor athena-core)
|
||||||
set_target_properties(amuse-au PROPERTIES
|
set_target_properties(amuse-au PROPERTIES
|
||||||
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/AudioUnit/ExtensionInfo.plist"
|
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/AudioUnit/ExtensionInfo.plist"
|
||||||
BUNDLE_EXTENSION "appex" BUNDLE TRUE
|
BUNDLE_EXTENSION "appex" BUNDLE TRUE
|
||||||
|
@ -113,17 +114,27 @@ if(TARGET boo)
|
||||||
|
|
||||||
|
|
||||||
# Containing App
|
# Containing App
|
||||||
|
add_custom_command(
|
||||||
|
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/AmuseContainerMainMenu.nib
|
||||||
|
COMMAND ibtool --errors --warnings --notices --module amuse_au_container --auto-activate-custom-fonts
|
||||||
|
--target-device mac --minimum-deployment-target 10.11 --output-format human-readable-text --compile
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/AmuseContainerMainMenu.nib
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/AudioUnit/AmuseContainerMainMenu.xib
|
||||||
|
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/AudioUnit/AmuseContainerMainMenu.xib
|
||||||
|
)
|
||||||
add_executable(amuse-au-container MACOSX_BUNDLE AudioUnit/AmuseContainingApp.mm
|
add_executable(amuse-au-container MACOSX_BUNDLE AudioUnit/AmuseContainingApp.mm
|
||||||
AudioUnit/AudioUnitBackend.hpp AudioUnit/AudioUnitBackend.mm
|
AudioUnit/AudioUnitBackend.hpp AudioUnit/AudioUnitBackend.mm
|
||||||
AudioUnit/AudioUnitViewController.hpp AudioUnit/AudioUnitViewController.mm)
|
AudioUnit/AudioUnitViewController.hpp AudioUnit/AudioUnitViewController.mm
|
||||||
|
AudioUnit/AudioGroupFilePresenter.hpp AudioUnit/AudioGroupFilePresenter.mm
|
||||||
|
AmuseContainerMainMenu.nib)
|
||||||
set_source_files_properties(AudioUnit/AudioUnitBackend.mm AudioUnit/AudioUnitViewController.mm
|
set_source_files_properties(AudioUnit/AudioUnitBackend.mm AudioUnit/AudioUnitViewController.mm
|
||||||
AudioUnit/AmuseContainingApp.mm
|
AudioUnit/AmuseContainingApp.mm AudioUnit/AudioGroupFilePresenter.mm
|
||||||
PROPERTIES COMPILE_FLAGS -fobjc-arc)
|
PROPERTIES COMPILE_FLAGS -fobjc-arc)
|
||||||
target_link_libraries(amuse-au-container amuse boo soxr ${AUDIOUNIT_LIBRARY} ${COREAUDIOKIT_LIBRARY}
|
target_link_libraries(amuse-au-container amuse boo soxr ${AUDIOUNIT_LIBRARY} ${COREAUDIOKIT_LIBRARY}
|
||||||
${AVFOUNDATION_LIBRARY} ${BOO_SYS_LIBS} logvisor)
|
${AVFOUNDATION_LIBRARY} ${BOO_SYS_LIBS} logvisor athena-core)
|
||||||
|
|
||||||
set(APPLE_BUNDLE_ID "io.github.axiodl.Amuse")
|
set(APPLE_BUNDLE_ID "io.github.axiodl.Amuse")
|
||||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/AudioUnit/Amuse.entitlements.in
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/AudioUnit/AmuseContainer.entitlements.in
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/AmuseContainer.entitlements)
|
${CMAKE_CURRENT_BINARY_DIR}/AmuseContainer.entitlements)
|
||||||
|
|
||||||
set_target_properties(amuse-au-container PROPERTIES
|
set_target_properties(amuse-au-container PROPERTIES
|
||||||
|
@ -145,6 +156,9 @@ if(TARGET boo)
|
||||||
)
|
)
|
||||||
|
|
||||||
add_custom_command(TARGET amuse-au-container POST_BUILD
|
add_custom_command(TARGET amuse-au-container POST_BUILD
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/AmuseContainerMainMenu.nib"
|
||||||
|
"$<TARGET_FILE_DIR:amuse-au-container>/../Resources/AmuseContainerMainMenu.nib"
|
||||||
COMMAND codesign --force --sign
|
COMMAND codesign --force --sign
|
||||||
${APPLE_DEV_ID} "$<TARGET_FILE_DIR:amuse-au-container>/../.."
|
${APPLE_DEV_ID} "$<TARGET_FILE_DIR:amuse-au-container>/../.."
|
||||||
VERBATIM
|
VERBATIM
|
||||||
|
|
Loading…
Reference in New Issue