mirror of https://github.com/AxioDL/amuse.git
Minor Amuse-AU changes
This commit is contained in:
parent
91b88c0568
commit
3eba4cc1ac
|
@ -218,7 +218,7 @@
|
||||||
|
|
||||||
- (void)pumpTimer:(NSTimer*)timer
|
- (void)pumpTimer:(NSTimer*)timer
|
||||||
{
|
{
|
||||||
amuseEngine->pumpEngine();
|
booEngine->pumpAndMixVoices();
|
||||||
}
|
}
|
||||||
|
|
||||||
- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender
|
- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender
|
||||||
|
@ -251,7 +251,7 @@
|
||||||
{
|
{
|
||||||
__block NSOpenPanel* panel = [NSOpenPanel openPanel];
|
__block NSOpenPanel* panel = [NSOpenPanel openPanel];
|
||||||
[panel beginSheetModalForWindow:mainWindow completionHandler:^(NSInteger result) {
|
[panel beginSheetModalForWindow:mainWindow completionHandler:^(NSInteger result) {
|
||||||
if (result == NSFileHandlingPanelOKButton)
|
if (result == NSModalResponseOK)
|
||||||
{
|
{
|
||||||
[self importURL:panel.URL];
|
[self importURL:panel.URL];
|
||||||
}
|
}
|
||||||
|
|
|
@ -239,7 +239,7 @@ void AudioGroupCollection::addSamples(std::vector<AudioGroupSampleToken*>& vecOu
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
AudioGroupDataCollection::AudioGroupDataCollection(const std::string& name, NSURL* proj, NSURL* pool,
|
AudioGroupDataCollection::AudioGroupDataCollection(std::string_view name, NSURL* proj, NSURL* pool,
|
||||||
NSURL* sdir, NSURL* samp, NSURL* meta)
|
NSURL* sdir, NSURL* samp, NSURL* meta)
|
||||||
: m_name(name), m_proj(proj), m_pool(pool), m_sdir(sdir), m_samp(samp), m_meta(meta),
|
: m_name(name), m_proj(proj), m_pool(pool), m_sdir(sdir), m_samp(samp), m_meta(meta),
|
||||||
m_token([[AudioGroupDataToken alloc] initWithDataCollection:this]) {}
|
m_token([[AudioGroupDataToken alloc] initWithDataCollection:this]) {}
|
||||||
|
|
|
@ -112,11 +112,13 @@ struct AudioUnitVoiceEngine : boo::BaseAudioVoiceEngine
|
||||||
m_mixInfo.m_periodFrames = periodFrames;
|
m_mixInfo.m_periodFrames = periodFrames;
|
||||||
m_mixInfo.m_sampleRate = sampleRate;
|
m_mixInfo.m_sampleRate = sampleRate;
|
||||||
_buildAudioRenderClient();
|
_buildAudioRenderClient();
|
||||||
|
|
||||||
for (boo::AudioVoice* vox : m_activeVoices)
|
if (m_voiceHead)
|
||||||
vox->_resetSampleRate(vox->m_sampleRateIn);
|
for (boo::AudioVoice& vox : *m_voiceHead)
|
||||||
for (boo::AudioSubmix* smx : m_activeSubmixes)
|
vox._resetSampleRate(vox.m_sampleRateIn);
|
||||||
smx->_resetOutputSampleRate();
|
if (m_submixHead)
|
||||||
|
for (boo::AudioSubmix& smx : *m_submixHead)
|
||||||
|
smx._resetOutputSampleRate();
|
||||||
}
|
}
|
||||||
|
|
||||||
void pumpAndMixVoices()
|
void pumpAndMixVoices()
|
||||||
|
@ -281,7 +283,7 @@ struct AudioUnitVoiceEngine : boo::BaseAudioVoiceEngine
|
||||||
/* Output buffers */
|
/* Output buffers */
|
||||||
voxEngine.m_renderFrames = frameCount;
|
voxEngine.m_renderFrames = frameCount;
|
||||||
voxEngine.m_outputData = outputData;
|
voxEngine.m_outputData = outputData;
|
||||||
amuseEngine.pumpEngine();
|
voxEngine.pumpAndMixVoices();
|
||||||
return noErr;
|
return noErr;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,109 +1,113 @@
|
||||||
if (APPLE AND (NOT CMAKE_OSX_DEPLOYMENT_TARGET OR CMAKE_OSX_DEPLOYMENT_TARGET VERSION_GREATER 10.10))
|
if (APPLE AND (NOT CMAKE_OSX_DEPLOYMENT_TARGET OR CMAKE_OSX_DEPLOYMENT_TARGET VERSION_GREATER 10.10))
|
||||||
set(APPLE_DEV_ID "" CACHE STRING "Mac Developer ID string 'Mac Developer: John Smith (XXXXXXXXXX)'")
|
set(APPLE_DEV_ID "" CACHE STRING "Mac Developer ID string 'Mac Developer: John Smith (XXXXXXXXXX)'")
|
||||||
set(APPLE_TEAM_ID "" CACHE STRING "Team ID string provisioned within Xcode / Apple's portal")
|
set(APPLE_TEAM_ID "" CACHE STRING "Team ID string provisioned within Xcode / Apple's portal")
|
||||||
find_library(AVFOUNDATION_LIBRARY AVFoundation)
|
if (APPLE_DEV_ID AND APPLE_TEAM_ID)
|
||||||
find_library(AUDIOUNIT_LIBRARY AudioUnit)
|
find_library(AVFOUNDATION_LIBRARY AVFoundation)
|
||||||
find_library(COREAUDIOKIT_LIBRARY CoreAudioKit)
|
find_library(AUDIOUNIT_LIBRARY AudioUnit)
|
||||||
if (NOT (AUDIOUNIT_LIBRARY STREQUAL AUDIOUNIT_LIBRARY-NOTFOUND))
|
find_library(COREAUDIOKIT_LIBRARY CoreAudioKit)
|
||||||
set(CMAKE_INSTALL_PREFIX "${CMAKE_CURRENT_BINARY_DIR}")
|
if (NOT (AUDIOUNIT_LIBRARY STREQUAL AUDIOUNIT_LIBRARY-NOTFOUND))
|
||||||
|
set(CMAKE_INSTALL_PREFIX "${CMAKE_CURRENT_BINARY_DIR}")
|
||||||
|
|
||||||
# Search for provision profile to make AudioUnit extension 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})
|
||||||
file(STRINGS "${FILE}" NAME REGEX ${APPLE_TEAM_ID})
|
file(STRINGS "${FILE}" NAME REGEX ${APPLE_TEAM_ID})
|
||||||
if(NAME)
|
if(NAME)
|
||||||
set(PROV_PROFILE "${FILE}")
|
set(PROV_PROFILE "${FILE}")
|
||||||
break()
|
break()
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
if(EXISTS "${PROV_PROFILE}")
|
||||||
|
|
||||||
|
# Extension App
|
||||||
|
add_custom_command(
|
||||||
|
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/AudioUnitViewController.nib
|
||||||
|
COMMAND ibtool --errors --warnings --notices --module amuse_au --auto-activate-custom-fonts
|
||||||
|
--target-device mac --minimum-deployment-target 10.11 --output-format human-readable-text --compile
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/AudioUnitViewController.nib
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/AudioUnitViewController.xib
|
||||||
|
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/AudioUnitViewController.xib
|
||||||
|
)
|
||||||
|
add_executable(amuse-au MACOSX_BUNDLE AudioUnitBackend.hpp AudioUnitBackend.mm
|
||||||
|
AudioUnitViewController.hpp AudioUnitViewController.mm
|
||||||
|
AudioGroupFilePresenter.hpp AudioGroupFilePresenter.mm
|
||||||
|
AudioUnitViewController.nib)
|
||||||
|
|
||||||
|
set(APPLE_BUNDLE_ID "io.github.axiodl.Amuse.AudioUnit")
|
||||||
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/AmuseExtension.entitlements.in
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/AmuseExtension.entitlements)
|
||||||
|
|
||||||
|
target_link_libraries(amuse-au amuse boo soxr ${AUDIOUNIT_LIBRARY} ${COREAUDIOKIT_LIBRARY}
|
||||||
|
${AVFOUNDATION_LIBRARY} ${BOO_SYS_LIBS} logvisor athena-core)
|
||||||
|
set_target_properties(amuse-au PROPERTIES
|
||||||
|
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/ExtensionInfo.plist"
|
||||||
|
BUNDLE_EXTENSION "appex" BUNDLE TRUE
|
||||||
|
XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS "${CMAKE_CURRENT_BINARY_DIR}/AmuseExtension.entitlements"
|
||||||
|
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "${APPLE_DEV_ID}"
|
||||||
|
LINK_FLAGS "-e _NSExtensionMain -fobjc-arc -fobjc-link-runtime -fapplication-extension")
|
||||||
|
|
||||||
|
|
||||||
|
# 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}/AmuseContainerMainMenu.xib
|
||||||
|
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/AmuseContainerMainMenu.xib
|
||||||
|
)
|
||||||
|
add_executable(amuse-au-container MACOSX_BUNDLE AmuseContainingApp.hpp AmuseContainingApp.mm
|
||||||
|
AudioUnitBackend.hpp AudioUnitBackend.mm
|
||||||
|
AudioUnitViewController.hpp AudioUnitViewController.mm
|
||||||
|
AudioGroupFilePresenter.hpp AudioGroupFilePresenter.mm
|
||||||
|
AmuseContainerMainMenu.nib)
|
||||||
|
set_source_files_properties(AudioUnitBackend.mm AudioUnitViewController.mm
|
||||||
|
AmuseContainingApp.mm AudioGroupFilePresenter.mm
|
||||||
|
PROPERTIES COMPILE_FLAGS -fobjc-arc)
|
||||||
|
target_link_libraries(amuse-au-container amuse boo soxr ${AUDIOUNIT_LIBRARY} ${COREAUDIOKIT_LIBRARY}
|
||||||
|
${AVFOUNDATION_LIBRARY} ${ZLIB_LIBRARIES} ${LZO_LIB} ${BOO_SYS_LIBS} logvisor athena-core)
|
||||||
|
|
||||||
|
set(APPLE_BUNDLE_ID "io.github.axiodl.Amuse")
|
||||||
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/AmuseContainer.entitlements.in
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/AmuseContainer.entitlements)
|
||||||
|
|
||||||
|
set_target_properties(amuse-au-container PROPERTIES
|
||||||
|
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/ContainerInfo.plist"
|
||||||
|
XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS "${CMAKE_CURRENT_BINARY_DIR}/AmuseContainer.entitlements"
|
||||||
|
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "${APPLE_DEV_ID}")
|
||||||
|
|
||||||
|
add_custom_command(TARGET amuse-au POST_BUILD
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/AudioUnitViewController.nib"
|
||||||
|
"$<TARGET_FILE_DIR:amuse-au>/../Resources/AudioUnitViewController.nib"
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy "${PROV_PROFILE}" "$<TARGET_FILE_DIR:amuse-au>/../embedded.provisionprofile"
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E remove_directory "$<TARGET_FILE_DIR:amuse-au-container>/../PlugIns/amuse-au.appex"
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy_directory "$<TARGET_FILE_DIR:amuse-au>/../.."
|
||||||
|
"$<TARGET_FILE_DIR:amuse-au-container>/../PlugIns/amuse-au.appex"
|
||||||
|
COMMAND codesign --force --sign
|
||||||
|
${APPLE_DEV_ID} --entitlements "${CMAKE_CURRENT_BINARY_DIR}/AmuseExtension.entitlements"
|
||||||
|
"$<TARGET_FILE_DIR:amuse-au-container>/../PlugIns/amuse-au.appex"
|
||||||
|
COMMAND codesign --force --sign ${APPLE_DEV_ID}
|
||||||
|
"$<TARGET_FILE_DIR:amuse-au-container>/../.."
|
||||||
|
VERBATIM
|
||||||
|
)
|
||||||
|
|
||||||
|
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
|
||||||
|
${APPLE_DEV_ID} "$<TARGET_FILE_DIR:amuse-au-container>/../.."
|
||||||
|
VERBATIM
|
||||||
|
)
|
||||||
|
|
||||||
|
else()
|
||||||
|
message(WARNING "Unable to find developer provisioning profile; skipping Amuse-AU")
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
|
||||||
|
|
||||||
if(EXISTS "${PROV_PROFILE}")
|
|
||||||
|
|
||||||
# Extension App
|
|
||||||
add_custom_command(
|
|
||||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/AudioUnitViewController.nib
|
|
||||||
COMMAND ibtool --errors --warnings --notices --module amuse_au --auto-activate-custom-fonts
|
|
||||||
--target-device mac --minimum-deployment-target 10.11 --output-format human-readable-text --compile
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/AudioUnitViewController.nib
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/AudioUnitViewController.xib
|
|
||||||
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/AudioUnitViewController.xib
|
|
||||||
)
|
|
||||||
add_executable(amuse-au MACOSX_BUNDLE AudioUnitBackend.hpp AudioUnitBackend.mm
|
|
||||||
AudioUnitViewController.hpp AudioUnitViewController.mm
|
|
||||||
AudioGroupFilePresenter.hpp AudioGroupFilePresenter.mm
|
|
||||||
AudioUnitViewController.nib)
|
|
||||||
|
|
||||||
set(APPLE_BUNDLE_ID "io.github.axiodl.Amuse.AudioUnit")
|
|
||||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/AmuseExtension.entitlements.in
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/AmuseExtension.entitlements)
|
|
||||||
|
|
||||||
target_link_libraries(amuse-au amuse boo soxr ${AUDIOUNIT_LIBRARY} ${COREAUDIOKIT_LIBRARY}
|
|
||||||
${AVFOUNDATION_LIBRARY} ${BOO_SYS_LIBS} logvisor athena-core)
|
|
||||||
set_target_properties(amuse-au PROPERTIES
|
|
||||||
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/ExtensionInfo.plist"
|
|
||||||
BUNDLE_EXTENSION "appex" BUNDLE TRUE
|
|
||||||
XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS "${CMAKE_CURRENT_BINARY_DIR}/AmuseExtension.entitlements"
|
|
||||||
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "${APPLE_DEV_ID}"
|
|
||||||
LINK_FLAGS "-e _NSExtensionMain -fobjc-arc -fobjc-link-runtime -fapplication-extension")
|
|
||||||
|
|
||||||
|
|
||||||
# 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}/AmuseContainerMainMenu.xib
|
|
||||||
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/AmuseContainerMainMenu.xib
|
|
||||||
)
|
|
||||||
add_executable(amuse-au-container MACOSX_BUNDLE AmuseContainingApp.hpp AmuseContainingApp.mm
|
|
||||||
AudioUnitBackend.hpp AudioUnitBackend.mm
|
|
||||||
AudioUnitViewController.hpp AudioUnitViewController.mm
|
|
||||||
AudioGroupFilePresenter.hpp AudioGroupFilePresenter.mm
|
|
||||||
AmuseContainerMainMenu.nib)
|
|
||||||
set_source_files_properties(AudioUnitBackend.mm AudioUnitViewController.mm
|
|
||||||
AmuseContainingApp.mm AudioGroupFilePresenter.mm
|
|
||||||
PROPERTIES COMPILE_FLAGS -fobjc-arc)
|
|
||||||
target_link_libraries(amuse-au-container amuse boo soxr ${AUDIOUNIT_LIBRARY} ${COREAUDIOKIT_LIBRARY}
|
|
||||||
${AVFOUNDATION_LIBRARY} ${ZLIB_LIBRARIES} ${LZO_LIB} ${BOO_SYS_LIBS} logvisor athena-core)
|
|
||||||
|
|
||||||
set(APPLE_BUNDLE_ID "io.github.axiodl.Amuse")
|
|
||||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/AmuseContainer.entitlements.in
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/AmuseContainer.entitlements)
|
|
||||||
|
|
||||||
set_target_properties(amuse-au-container PROPERTIES
|
|
||||||
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/ContainerInfo.plist"
|
|
||||||
XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS "${CMAKE_CURRENT_BINARY_DIR}/AmuseContainer.entitlements"
|
|
||||||
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "${APPLE_DEV_ID}")
|
|
||||||
|
|
||||||
add_custom_command(TARGET amuse-au POST_BUILD
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy
|
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/AudioUnitViewController.nib"
|
|
||||||
"$<TARGET_FILE_DIR:amuse-au>/../Resources/AudioUnitViewController.nib"
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy "${PROV_PROFILE}" "$<TARGET_FILE_DIR:amuse-au>/../embedded.provisionprofile"
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E remove_directory "$<TARGET_FILE_DIR:amuse-au-container>/../PlugIns/amuse-au.appex"
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory "$<TARGET_FILE_DIR:amuse-au>/../.."
|
|
||||||
"$<TARGET_FILE_DIR:amuse-au-container>/../PlugIns/amuse-au.appex"
|
|
||||||
COMMAND codesign --force --sign
|
|
||||||
${APPLE_DEV_ID} --entitlements "${CMAKE_CURRENT_BINARY_DIR}/AmuseExtension.entitlements"
|
|
||||||
"$<TARGET_FILE_DIR:amuse-au-container>/../PlugIns/amuse-au.appex"
|
|
||||||
COMMAND codesign --force --sign ${APPLE_DEV_ID}
|
|
||||||
"$<TARGET_FILE_DIR:amuse-au-container>/../.."
|
|
||||||
VERBATIM
|
|
||||||
)
|
|
||||||
|
|
||||||
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
|
|
||||||
${APPLE_DEV_ID} "$<TARGET_FILE_DIR:amuse-au-container>/../.."
|
|
||||||
VERBATIM
|
|
||||||
)
|
|
||||||
|
|
||||||
else()
|
|
||||||
message(WARNING "Unable to find developer provisioning profile; skipping Amuse-AU")
|
|
||||||
endif()
|
endif()
|
||||||
|
else()
|
||||||
|
message(WARNING "APPLE_DEV_ID and/or APPLE_TEAM_ID not set; skipping Amuse-AU")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
Loading…
Reference in New Issue