Date: Monday, September 27, 2021 @ 19:35:15 Author: dvzrv Revision: 1025786
archrelease: copy trunk to community-staging-x86_64 Added: juce/repos/community-staging-x86_64/PKGBUILD (from rev 1025785, juce/trunk/PKGBUILD) juce/repos/community-staging-x86_64/juce-6.1.2-cmake_install.patch (from rev 1025785, juce/trunk/juce-6.1.2-cmake_install.patch) juce/repos/community-staging-x86_64/juce-6.1.2-cmake_juce_utils.patch (from rev 1025785, juce/trunk/juce-6.1.2-cmake_juce_utils.patch) juce/repos/community-staging-x86_64/juce-6.1.2-cmake_link_against_system_deps.patch (from rev 1025785, juce/trunk/juce-6.1.2-cmake_link_against_system_deps.patch) juce/repos/community-staging-x86_64/juce-6.1.2-devendor_libs.patch (from rev 1025785, juce/trunk/juce-6.1.2-devendor_libs.patch) juce/repos/community-staging-x86_64/juce-6.1.2-fst_vst.patch (from rev 1025785, juce/trunk/juce-6.1.2-fst_vst.patch) juce/repos/community-staging-x86_64/juce-6.1.2-projucer_disable_update_check.patch (from rev 1025785, juce/trunk/juce-6.1.2-projucer_disable_update_check.patch) juce/repos/community-staging-x86_64/juce-6.1.2-projucer_juce_paths.patch (from rev 1025785, juce/trunk/juce-6.1.2-projucer_juce_paths.patch) juce/repos/community-staging-x86_64/juce_VSTInterface.h (from rev 1025785, juce/trunk/juce_VSTInterface.h) Deleted: juce/repos/community-staging-x86_64/PKGBUILD juce/repos/community-staging-x86_64/juce-6.1.2-cmake_install.patch juce/repos/community-staging-x86_64/juce-6.1.2-cmake_juce_utils.patch juce/repos/community-staging-x86_64/juce-6.1.2-cmake_link_against_system_deps.patch juce/repos/community-staging-x86_64/juce-6.1.2-fst_vst.patch juce/repos/community-staging-x86_64/juce-6.1.2-projucer_disable_update_check.patch juce/repos/community-staging-x86_64/juce-6.1.2-projucer_juce_paths.patch juce/repos/community-staging-x86_64/juce_VSTInterface.h -------------------------------------------------+ PKGBUILD | 240 +-- juce-6.1.2-cmake_install.patch | 96 - juce-6.1.2-cmake_juce_utils.patch | 40 juce-6.1.2-cmake_link_against_system_deps.patch | 176 +- juce-6.1.2-devendor_libs.patch | 87 + juce-6.1.2-fst_vst.patch | 54 juce-6.1.2-projucer_disable_update_check.patch | 22 juce-6.1.2-projucer_juce_paths.patch | 44 juce_VSTInterface.h | 1628 +++++++++++----------- 9 files changed, 1236 insertions(+), 1151 deletions(-) Deleted: PKGBUILD =================================================================== --- PKGBUILD 2021-09-27 19:34:58 UTC (rev 1025785) +++ PKGBUILD 2021-09-27 19:35:15 UTC (rev 1025786) @@ -1,121 +0,0 @@ -# Maintainer: David Runge <dv...@archlinux.org> - -_name=JUCE -pkgbase=juce -pkgname=(juce juce-docs) -pkgver=6.1.2 -pkgrel=1 -pkgdesc="Cross-platform C++ framework" -arch=('x86_64') -url="https://github.com/juce-framework/juce/" -license=('Apache' 'BSD' 'GPL3' 'ISC') -makedepends=('alsa-lib' 'cmake' 'freetype2' 'doxygen' 'gendesk' 'graphviz' -'gtk3' 'jack' 'ladspa' 'libjpeg-turbo' 'libpng' 'python' 'webkit2gtk' 'zlib') -source=( - "$pkgname-$pkgver.tar.gz::https://github.com/juce-framework/${pkgname}/archive/${pkgver}.tar.gz" - "${pkgname}-6.1.2-cmake_install.patch" - "${pkgname}-6.1.2-cmake_juce_utils.patch" - "${pkgname}-6.1.2-cmake_link_against_system_deps.patch" - "${pkgname}-6.1.2-fst_vst.patch" - "${pkgname}-6.1.2-projucer_disable_update_check.patch" - "${pkgname}-6.1.2-projucer_juce_paths.patch" - "${pkgname}_VSTInterface.h" -) -sha512sums=('0427be40e9cea3b215358f0661e9dabcbc4f1be7aba7d0f44e35f8426dd49ba31da99d0f18a6ee28b3dce50114a1647157802e6231d9b912269f179191ebccc1' - '52aba043ad3e5154b67f4d140f1d1e936962325763b47bbec57e1ef0a9cccbe6fa0b99598a756cb76853b5c1c5084b32055fc6a76f992b10323d867c82023399' - '91ef9ced3a72db3b24d5892149cb3ac19fd132a0cc48a36afe1664864e7deb4928a3a19a92aee11f277beccbb8e500e4fa1aba74d77a52b3517ce4bb429904c6' - '08b0b5a945dc77073b77b2ec678d48394d7baf2bcb0213b2d5e37ab755d8e33b86511045f412f15fd9ba32aced330e611d0fa9f10b10468956898751fb50a754' - 'dddf5510f9391fc663db29174215e9575e9ec3956bb649c8a83564b0dcfa1202cc430fadd8faafa390b45c3a2e79ba75e3cdfb118db1e5c35836fad954b67e32' - '2e1b823d9e5611e2c9efa1459f309f9add76d163411bb32cbd8c93f9751c6b97842af430f866f9ebce02d7602a655fd1f9d62f0530e5dc4d2621cbbd5444aad8' - '766b761bf60a09fd01e9e6422df5b34c5305d41672b82b2c54819c581a952af5d7c8c39868c8615b57b14f772624bae4545ec878f2098ab5b8afb2ecf59146a1' - '36a244740872cd203db3e1cebba5a5e245a3300a8c6c76046455ecc38083348f069987d0cba8f569390b4f0ba855799b8ff559cb540f02382b67a46d5b9cc420') -b2sums=('40ee2769aa165337d9cad6dadf1e4ee60a0dd4e69ebbcacc8e98469a5556c4884ddf2a3704778ede8a6112eab4062d768e92aa07e547be8afef2771bc130e962' - '2419fd707b03a5e33cef03576cbeddb99ab4fd67f4fbec8047668ffb1daf78803cd608d7255893394e6d83dce5afd51608793384567228130a0082bcc9a67f60' - '8accc2bb2def2b6c91084879071299c0d94e652dad61f15457d8a3c49507db30dcbd25f0311cc044661470ff986d7566ef503ec183b6ada535341dcb456d8e6d' - 'adae21dc435805fb73381c71e942b5a7ad65063310cbd33d9aa49d8c2a7abd94bd6f712ebe6a43a1efe243feba86149dc2b6b40e5a3e60b18e929b141bb939b8' - 'b0a8758f6a97a487b7734839d59f0c0684d69ac67acba168a707296eeb82fb13c630506dcb05f45e1eaf9620adc881c6c467fdc3f3cfbb0326a4e6ebf36407e8' - 'cd6c59deed414529c49dbf8506905cc7848bb48073e054d4cf2450c17c7268860330bd2d2e6d30e5a2a68cec2106e3498619e85ce602439f75ba9393084498f6' - '4d42e73b4d15f0ef16a55d927de43127518f4420fe54f78b2c2a0e57a08eb192138f65f381017d0f1e6ca286009f63f16c269b58e7405c35894c0bc3ac91de7b' - 'f56e59984bde66d482fdeae3cefc0d4dc9e25c9c170f2f0b46ec53bd63ec72432b1764ff282ef8093c1029a427852c09087827d22023b526786a03977cbb7a32') - -prepare() { - mv -v "${_name}-$pkgver" "$pkgname-$pkgver" - cd "$pkgname-$pkgver" - for _patch in ../*.patch; do - printf "Applying patch %s\n" "${_patch}" - patch -Np1 -i "${_patch}" - done - - gendesk -n \ - --pkgname "com.juce_projucer" \ - --name "Projucer" \ - --pkgdesc "Cross-platform project manager and C++ code editor" \ - --exec "Projucer" \ - --icon "Projucer" \ - --genericname "Code manager and editor" \ - --categories "Development" - # remove bundled sources for flac, libogg, vorbis, libjpeg, libpng and zlib - # as we are linking against system libs - rm -rvf modules/juce_audio_formats/codecs/flac/ \ - modules/juce_audio_formats/codecs/oggvorbis/ \ - modules/juce_audio_plugin_client/AU/ \ - modules/juce_graphics/image_formats/jpglib/ \ - modules/juce_graphics/image_formats/pnglib/ \ - modules/juce_core/zip/zlib/ -} - -build() { - cd "$pkgname-$pkgver" - # enable GPL mode via CPPFLAGS - export CPPFLAGS+=" -DJUCER_ENABLE_GPL_MODE=1" - export CPPFLAGS+=" -DJUCE_INCLUDE_FLAC_CODE=0" - export CPPFLAGS+=" -DJUCE_INCLUDE_JPEGLIB_CODE=0" - export CPPFLAGS+=" -DJUCE_INCLUDE_OGGVORBIS_CODE=0" - export CPPFLAGS+=" -DJUCE_INCLUDE_PNGLIB_CODE=0" - export CPPFLAGS+=" -DJUCE_INCLUDE_ZLIB_CODE=0 -DJUCE_ZLIB_INCLUDE_PATH='<zlib.h>'" - - cmake -DCMAKE_INSTALL_PREFIX=/usr \ - -DCMAKE_BUILD_TYPE='None' \ - -DJUCE_BUILD_EXTRAS=ON \ - -DJUCE_TOOL_INSTALL_DIR='bin' \ - -Wno-dev \ - -B build \ - -S . - make VERBOSE=1 -C build - make -C docs/doxygen -} - -package_juce() { - depends=('gcc-libs' 'glibc' 'hicolor-icon-theme' 'libpng' 'libfreetype.so' - 'libjpeg.so' 'zlib') - optdepends=('fst: for building FST plugins') - - cd "$pkgname-$pkgver" - make DESTDIR="${pkgdir}" VERBOSE=1 -C build install - - # install custom vst2 handling from juce < 5.4.1 - install -vDm 644 ../juce_VSTInterface.h \ - -t "${pkgdir}/usr/share/juce/modules/juce_audio_processors/format_types/" - # projucer has no install target - install -vDm 755 build/extras/Projucer/Projucer_artefacts/None/Projucer \ - -t "${pkgdir}/usr/bin" - # xdg desktop integration - install -vDm 644 *.desktop -t "${pkgdir}/usr/share/applications/" - install -vDm 644 examples/Assets/juce_icon.png \ - "${pkgdir}/usr/share/icons/hicolor/512x512/apps/Projucer.png" - # docs - install -vDm 644 {{BREAKING-CHANGES,ChangeList}.txt,README.md} \ - -t "${pkgdir}/usr/share/doc/${pkgname}" - # license - install -vDm 644 LICENSE.md -t "${pkgdir}/usr/share/licenses/${pkgname}" -} - -package_juce-docs() { - cd "$pkgbase-$pkgver" - ( - cd docs/doxygen/doc - find . -type f -exec install -vDm 644 {} "${pkgdir}/usr/share/doc/${pkgbase}/html/"{} \; - ) - # license - install -vDm 644 LICENSE.md -t "${pkgdir}/usr/share/licenses/${pkgname}" -} Copied: juce/repos/community-staging-x86_64/PKGBUILD (from rev 1025785, juce/trunk/PKGBUILD) =================================================================== --- PKGBUILD (rev 0) +++ PKGBUILD 2021-09-27 19:35:15 UTC (rev 1025786) @@ -0,0 +1,119 @@ +# Maintainer: David Runge <dv...@archlinux.org> + +_name=JUCE +pkgbase=juce +pkgname=(juce juce-docs) +pkgver=6.1.2 +pkgrel=2 +pkgdesc="Cross-platform C++ framework" +arch=('x86_64') +url="https://github.com/juce-framework/juce/" +license=('Apache' 'BSD' 'GPL3' 'ISC') +makedepends=('alsa-lib' 'cmake' 'freetype2' 'doxygen' 'gendesk' 'graphviz' +'gtk3' 'jack' 'ladspa' 'libjpeg-turbo' 'libpng' 'python' 'webkit2gtk' 'zlib') +source=( + "$pkgname-$pkgver.tar.gz::https://github.com/juce-framework/${pkgname}/archive/${pkgver}.tar.gz" + "${pkgname}-6.1.2-cmake_install.patch" + "${pkgname}-6.1.2-cmake_juce_utils.patch" + "${pkgname}-6.1.2-cmake_link_against_system_deps.patch" + "${pkgname}-6.1.2-devendor_libs.patch" + "${pkgname}-6.1.2-fst_vst.patch" + "${pkgname}-6.1.2-projucer_disable_update_check.patch" + "${pkgname}-6.1.2-projucer_juce_paths.patch" + "${pkgname}_VSTInterface.h" +) +sha512sums=('0427be40e9cea3b215358f0661e9dabcbc4f1be7aba7d0f44e35f8426dd49ba31da99d0f18a6ee28b3dce50114a1647157802e6231d9b912269f179191ebccc1' + '52aba043ad3e5154b67f4d140f1d1e936962325763b47bbec57e1ef0a9cccbe6fa0b99598a756cb76853b5c1c5084b32055fc6a76f992b10323d867c82023399' + '91ef9ced3a72db3b24d5892149cb3ac19fd132a0cc48a36afe1664864e7deb4928a3a19a92aee11f277beccbb8e500e4fa1aba74d77a52b3517ce4bb429904c6' + '08b0b5a945dc77073b77b2ec678d48394d7baf2bcb0213b2d5e37ab755d8e33b86511045f412f15fd9ba32aced330e611d0fa9f10b10468956898751fb50a754' + 'ccec528a1daaf255a4686dad2d59314adab03a935a79893b04a8f04256179a2b1ba84fa563fd6781b314b9d2fc1ddf4892576f77d748e40577747013b3a60bc3' + 'dddf5510f9391fc663db29174215e9575e9ec3956bb649c8a83564b0dcfa1202cc430fadd8faafa390b45c3a2e79ba75e3cdfb118db1e5c35836fad954b67e32' + '2e1b823d9e5611e2c9efa1459f309f9add76d163411bb32cbd8c93f9751c6b97842af430f866f9ebce02d7602a655fd1f9d62f0530e5dc4d2621cbbd5444aad8' + '766b761bf60a09fd01e9e6422df5b34c5305d41672b82b2c54819c581a952af5d7c8c39868c8615b57b14f772624bae4545ec878f2098ab5b8afb2ecf59146a1' + '36a244740872cd203db3e1cebba5a5e245a3300a8c6c76046455ecc38083348f069987d0cba8f569390b4f0ba855799b8ff559cb540f02382b67a46d5b9cc420') +b2sums=('40ee2769aa165337d9cad6dadf1e4ee60a0dd4e69ebbcacc8e98469a5556c4884ddf2a3704778ede8a6112eab4062d768e92aa07e547be8afef2771bc130e962' + '2419fd707b03a5e33cef03576cbeddb99ab4fd67f4fbec8047668ffb1daf78803cd608d7255893394e6d83dce5afd51608793384567228130a0082bcc9a67f60' + '8accc2bb2def2b6c91084879071299c0d94e652dad61f15457d8a3c49507db30dcbd25f0311cc044661470ff986d7566ef503ec183b6ada535341dcb456d8e6d' + 'adae21dc435805fb73381c71e942b5a7ad65063310cbd33d9aa49d8c2a7abd94bd6f712ebe6a43a1efe243feba86149dc2b6b40e5a3e60b18e929b141bb939b8' + 'ee72102ecdf57490e9aec0fe6368d61e3c9f86a8b13fd35b3889eac591d716cc98c19b87d6d09360848202b4a108bbc39639d36e28d69908c80ee514b2cf40ee' + 'b0a8758f6a97a487b7734839d59f0c0684d69ac67acba168a707296eeb82fb13c630506dcb05f45e1eaf9620adc881c6c467fdc3f3cfbb0326a4e6ebf36407e8' + 'cd6c59deed414529c49dbf8506905cc7848bb48073e054d4cf2450c17c7268860330bd2d2e6d30e5a2a68cec2106e3498619e85ce602439f75ba9393084498f6' + '4d42e73b4d15f0ef16a55d927de43127518f4420fe54f78b2c2a0e57a08eb192138f65f381017d0f1e6ca286009f63f16c269b58e7405c35894c0bc3ac91de7b' + 'f56e59984bde66d482fdeae3cefc0d4dc9e25c9c170f2f0b46ec53bd63ec72432b1764ff282ef8093c1029a427852c09087827d22023b526786a03977cbb7a32') + +prepare() { + mv -v "${_name}-$pkgver" "$pkgname-$pkgver" + cd "$pkgname-$pkgver" + for _patch in ../*.patch; do + printf "Applying patch %s\n" "${_patch}" + patch -Np1 -i "${_patch}" + done + + gendesk -n \ + --pkgname "com.juce_projucer" \ + --name "Projucer" \ + --pkgdesc "Cross-platform project manager and C++ code editor" \ + --exec "Projucer" \ + --icon "Projucer" \ + --genericname "Code manager and editor" \ + --categories "Development" + # remove bundled sources for flac, libogg, vorbis, libjpeg, libpng and zlib + # as we are linking against system libs + rm -rvf modules/juce_audio_formats/codecs/flac/ \ + modules/juce_audio_formats/codecs/oggvorbis/ \ + modules/juce_audio_plugin_client/AU/ \ + modules/juce_graphics/image_formats/jpglib/ \ + modules/juce_graphics/image_formats/pnglib/ \ + modules/juce_core/zip/zlib/ +} + +build() { + cd "$pkgname-$pkgver" + # enable GPL mode via CPPFLAGS + export CPPFLAGS+=" -DJUCER_ENABLE_GPL_MODE=1" + + cmake -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_BUILD_TYPE='None' \ + -DJUCE_BUILD_EXTRAS=ON \ + -DJUCE_TOOL_INSTALL_DIR='bin' \ + -Wno-dev \ + -B build \ + -S . + make VERBOSE=1 -C build + make -C docs/doxygen +} + +package_juce() { + depends=('gcc-libs' 'glibc' 'hicolor-icon-theme' 'libpng' 'libfreetype.so' + 'libjpeg.so' 'zlib') + optdepends=('fst: for building FST plugins') + + cd "$pkgname-$pkgver" + make DESTDIR="${pkgdir}" VERBOSE=1 -C build install + + # install custom vst2 handling from juce < 5.4.1 + install -vDm 644 ../juce_VSTInterface.h \ + -t "${pkgdir}/usr/share/juce/modules/juce_audio_processors/format_types/" + # projucer has no install target + install -vDm 755 build/extras/Projucer/Projucer_artefacts/None/Projucer \ + -t "${pkgdir}/usr/bin" + # xdg desktop integration + install -vDm 644 *.desktop -t "${pkgdir}/usr/share/applications/" + install -vDm 644 examples/Assets/juce_icon.png \ + "${pkgdir}/usr/share/icons/hicolor/512x512/apps/Projucer.png" + # docs + install -vDm 644 {{BREAKING-CHANGES,ChangeList}.txt,README.md} \ + -t "${pkgdir}/usr/share/doc/${pkgname}" + # license + install -vDm 644 LICENSE.md -t "${pkgdir}/usr/share/licenses/${pkgname}" +} + +package_juce-docs() { + cd "$pkgbase-$pkgver" + ( + cd docs/doxygen/doc + find . -type f -exec install -vDm 644 {} "${pkgdir}/usr/share/doc/${pkgbase}/html/"{} \; + ) + # license + install -vDm 644 LICENSE.md -t "${pkgdir}/usr/share/licenses/${pkgname}" +} Deleted: juce-6.1.2-cmake_install.patch =================================================================== --- juce-6.1.2-cmake_install.patch 2021-09-27 19:34:58 UTC (rev 1025785) +++ juce-6.1.2-cmake_install.patch 2021-09-27 19:35:15 UTC (rev 1025786) @@ -1,48 +0,0 @@ -diff -ruN a/CMakeLists.txt b/CMakeLists.txt ---- a/CMakeLists.txt 2021-09-20 14:26:04.000000000 +0200 -+++ b/CMakeLists.txt 2021-09-25 23:53:15.171028235 +0200 -@@ -119,10 +119,10 @@ - COMPATIBILITY ExactVersion - ${extra_version_arg}) - --set(JUCE_INSTALL_DESTINATION "lib/cmake/JUCE-${JUCE_VERSION}" CACHE STRING -+set(JUCE_INSTALL_DESTINATION "lib/cmake/juce" CACHE STRING - "The location, relative to the install prefix, where the JUCE config file will be installed") - --set(JUCE_MODULE_PATH "include/JUCE-${JUCE_VERSION}/modules") -+set(JUCE_MODULE_PATH "share/juce/modules") - set(UTILS_INSTALL_DIR "${JUCE_INSTALL_DESTINATION}") - set(JUCEAIDE_PATH "${JUCE_TOOL_INSTALL_DIR}/${JUCE_JUCEAIDE_NAME}") - configure_package_config_file("${JUCE_CMAKE_UTILS_DIR}/JUCEConfig.cmake.in" -@@ -130,7 +130,6 @@ - PATH_VARS UTILS_INSTALL_DIR JUCEAIDE_PATH JUCE_MODULE_PATH - INSTALL_DESTINATION "${JUCE_INSTALL_DESTINATION}") - --set(JUCE_MODULE_PATH "${JUCE_MODULES_DIR}") - set(UTILS_INSTALL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/extras/Build/CMake") - get_target_property(JUCEAIDE_PATH juceaide IMPORTED_LOCATION) - configure_package_config_file("${JUCE_CMAKE_UTILS_DIR}/JUCEConfig.cmake.in" -diff -ruN a/extras/Build/juceaide/CMakeLists.txt b/extras/Build/juceaide/CMakeLists.txt ---- a/extras/Build/juceaide/CMakeLists.txt 2021-09-20 14:26:04.000000000 +0200 -+++ b/extras/Build/juceaide/CMakeLists.txt 2021-09-25 21:41:25.590399181 +0200 -@@ -100,7 +100,7 @@ - - add_executable(juce::juceaide ALIAS juceaide) - -- set(JUCE_TOOL_INSTALL_DIR "bin/JUCE-${JUCE_VERSION}" CACHE STRING -+ set(JUCE_TOOL_INSTALL_DIR "bin" CACHE STRING - "The location, relative to the install prefix, where juceaide will be installed") - - install(PROGRAMS "${imported_location}" DESTINATION "${JUCE_TOOL_INSTALL_DIR}") -diff -ruN a/modules/CMakeLists.txt b/modules/CMakeLists.txt ---- a/modules/CMakeLists.txt 2021-09-20 14:26:04.000000000 +0200 -+++ b/modules/CMakeLists.txt 2021-09-25 21:39:39.876766842 +0200 -@@ -22,7 +22,7 @@ - # ============================================================================== - - juce_add_modules( -- INSTALL_PATH "include/JUCE-${JUCE_VERSION}/modules" -+ INSTALL_PATH "share/juce/modules" - ALIAS_NAMESPACE juce - juce_analytics - juce_audio_basics Copied: juce/repos/community-staging-x86_64/juce-6.1.2-cmake_install.patch (from rev 1025785, juce/trunk/juce-6.1.2-cmake_install.patch) =================================================================== --- juce-6.1.2-cmake_install.patch (rev 0) +++ juce-6.1.2-cmake_install.patch 2021-09-27 19:35:15 UTC (rev 1025786) @@ -0,0 +1,48 @@ +diff -ruN a/CMakeLists.txt b/CMakeLists.txt +--- a/CMakeLists.txt 2021-09-20 14:26:04.000000000 +0200 ++++ b/CMakeLists.txt 2021-09-25 23:53:15.171028235 +0200 +@@ -119,10 +119,10 @@ + COMPATIBILITY ExactVersion + ${extra_version_arg}) + +-set(JUCE_INSTALL_DESTINATION "lib/cmake/JUCE-${JUCE_VERSION}" CACHE STRING ++set(JUCE_INSTALL_DESTINATION "lib/cmake/juce" CACHE STRING + "The location, relative to the install prefix, where the JUCE config file will be installed") + +-set(JUCE_MODULE_PATH "include/JUCE-${JUCE_VERSION}/modules") ++set(JUCE_MODULE_PATH "share/juce/modules") + set(UTILS_INSTALL_DIR "${JUCE_INSTALL_DESTINATION}") + set(JUCEAIDE_PATH "${JUCE_TOOL_INSTALL_DIR}/${JUCE_JUCEAIDE_NAME}") + configure_package_config_file("${JUCE_CMAKE_UTILS_DIR}/JUCEConfig.cmake.in" +@@ -130,7 +130,6 @@ + PATH_VARS UTILS_INSTALL_DIR JUCEAIDE_PATH JUCE_MODULE_PATH + INSTALL_DESTINATION "${JUCE_INSTALL_DESTINATION}") + +-set(JUCE_MODULE_PATH "${JUCE_MODULES_DIR}") + set(UTILS_INSTALL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/extras/Build/CMake") + get_target_property(JUCEAIDE_PATH juceaide IMPORTED_LOCATION) + configure_package_config_file("${JUCE_CMAKE_UTILS_DIR}/JUCEConfig.cmake.in" +diff -ruN a/extras/Build/juceaide/CMakeLists.txt b/extras/Build/juceaide/CMakeLists.txt +--- a/extras/Build/juceaide/CMakeLists.txt 2021-09-20 14:26:04.000000000 +0200 ++++ b/extras/Build/juceaide/CMakeLists.txt 2021-09-25 21:41:25.590399181 +0200 +@@ -100,7 +100,7 @@ + + add_executable(juce::juceaide ALIAS juceaide) + +- set(JUCE_TOOL_INSTALL_DIR "bin/JUCE-${JUCE_VERSION}" CACHE STRING ++ set(JUCE_TOOL_INSTALL_DIR "bin" CACHE STRING + "The location, relative to the install prefix, where juceaide will be installed") + + install(PROGRAMS "${imported_location}" DESTINATION "${JUCE_TOOL_INSTALL_DIR}") +diff -ruN a/modules/CMakeLists.txt b/modules/CMakeLists.txt +--- a/modules/CMakeLists.txt 2021-09-20 14:26:04.000000000 +0200 ++++ b/modules/CMakeLists.txt 2021-09-25 21:39:39.876766842 +0200 +@@ -22,7 +22,7 @@ + # ============================================================================== + + juce_add_modules( +- INSTALL_PATH "include/JUCE-${JUCE_VERSION}/modules" ++ INSTALL_PATH "share/juce/modules" + ALIAS_NAMESPACE juce + juce_analytics + juce_audio_basics Deleted: juce-6.1.2-cmake_juce_utils.patch =================================================================== --- juce-6.1.2-cmake_juce_utils.patch 2021-09-27 19:34:58 UTC (rev 1025785) +++ juce-6.1.2-cmake_juce_utils.patch 2021-09-27 19:35:15 UTC (rev 1025786) @@ -1,20 +0,0 @@ -diff -ruN a/extras/Build/CMake/JUCEUtils.cmake b/extras/Build/CMake/JUCEUtils.cmake ---- a/extras/Build/CMake/JUCEUtils.cmake 2021-09-20 14:26:04.000000000 +0200 -+++ b/extras/Build/CMake/JUCEUtils.cmake 2021-09-25 19:28:31.202649065 +0200 -@@ -83,6 +83,7 @@ - if((CMAKE_SYSTEM_NAME STREQUAL "Linux") OR (CMAKE_SYSTEM_NAME MATCHES ".*BSD")) - _juce_create_pkgconfig_target(JUCE_CURL_LINUX_DEPS libcurl) - _juce_create_pkgconfig_target(JUCE_BROWSER_LINUX_DEPS webkit2gtk-4.0 gtk+-x11-3.0) -+ _juce_create_pkgconfig_target(JUCE_IMG_LINUX_DEPS libjpeg libpng) - elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") - find_program(JUCE_XCRUN xcrun) - -@@ -225,6 +226,8 @@ - if(needs_browser) - target_link_libraries(${target} PRIVATE juce::pkgconfig_JUCE_BROWSER_LINUX_DEPS) - endif() -+ -+ target_link_libraries(${target} PRIVATE juce::pkgconfig_JUCE_IMG_LINUX_DEPS) - elseif(APPLE) - get_target_property(needs_storekit ${target} JUCE_NEEDS_STORE_KIT) - Copied: juce/repos/community-staging-x86_64/juce-6.1.2-cmake_juce_utils.patch (from rev 1025785, juce/trunk/juce-6.1.2-cmake_juce_utils.patch) =================================================================== --- juce-6.1.2-cmake_juce_utils.patch (rev 0) +++ juce-6.1.2-cmake_juce_utils.patch 2021-09-27 19:35:15 UTC (rev 1025786) @@ -0,0 +1,20 @@ +diff -ruN a/extras/Build/CMake/JUCEUtils.cmake b/extras/Build/CMake/JUCEUtils.cmake +--- a/extras/Build/CMake/JUCEUtils.cmake 2021-09-20 14:26:04.000000000 +0200 ++++ b/extras/Build/CMake/JUCEUtils.cmake 2021-09-25 19:28:31.202649065 +0200 +@@ -83,6 +83,7 @@ + if((CMAKE_SYSTEM_NAME STREQUAL "Linux") OR (CMAKE_SYSTEM_NAME MATCHES ".*BSD")) + _juce_create_pkgconfig_target(JUCE_CURL_LINUX_DEPS libcurl) + _juce_create_pkgconfig_target(JUCE_BROWSER_LINUX_DEPS webkit2gtk-4.0 gtk+-x11-3.0) ++ _juce_create_pkgconfig_target(JUCE_IMG_LINUX_DEPS libjpeg libpng) + elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") + find_program(JUCE_XCRUN xcrun) + +@@ -225,6 +226,8 @@ + if(needs_browser) + target_link_libraries(${target} PRIVATE juce::pkgconfig_JUCE_BROWSER_LINUX_DEPS) + endif() ++ ++ target_link_libraries(${target} PRIVATE juce::pkgconfig_JUCE_IMG_LINUX_DEPS) + elseif(APPLE) + get_target_property(needs_storekit ${target} JUCE_NEEDS_STORE_KIT) + Deleted: juce-6.1.2-cmake_link_against_system_deps.patch =================================================================== --- juce-6.1.2-cmake_link_against_system_deps.patch 2021-09-27 19:34:58 UTC (rev 1025785) +++ juce-6.1.2-cmake_link_against_system_deps.patch 2021-09-27 19:35:15 UTC (rev 1025786) @@ -1,88 +0,0 @@ -diff -ruN a/extras/AudioPerformanceTest/CMakeLists.txt e/extras/AudioPerformanceTest/CMakeLists.txt ---- a/extras/AudioPerformanceTest/CMakeLists.txt 2021-09-20 14:26:04.000000000 +0200 -+++ e/extras/AudioPerformanceTest/CMakeLists.txt 2021-09-25 20:11:11.782908700 +0200 -@@ -32,6 +32,11 @@ - JUCE_USE_CURL=0 JUCE_WEB_BROWSER=0) - - target_link_libraries(AudioPerformanceTest PRIVATE -+ "FLAC" -+ "ogg" -+ "vorbis" -+ "vorbisenc" -+ "vorbisfile" - juce::juce_audio_utils - juce::juce_recommended_config_flags - juce::juce_recommended_lto_flags -diff -ruN a/extras/AudioPluginHost/CMakeLists.txt e/extras/AudioPluginHost/CMakeLists.txt ---- a/extras/AudioPluginHost/CMakeLists.txt 2021-09-20 14:26:04.000000000 +0200 -+++ e/extras/AudioPluginHost/CMakeLists.txt 2021-09-25 20:31:04.882600939 +0200 -@@ -55,6 +55,10 @@ - JUCE_WEB_BROWSER=0) - - target_link_libraries(AudioPluginHost PRIVATE -+ "ogg" -+ "vorbis" -+ "vorbisenc" -+ "vorbisfile" - juce::juce_audio_utils - juce::juce_cryptography - juce::juce_dsp -diff -ruN a/extras/NetworkGraphicsDemo/CMakeLists.txt e/extras/NetworkGraphicsDemo/CMakeLists.txt ---- a/extras/NetworkGraphicsDemo/CMakeLists.txt 2021-09-20 14:26:04.000000000 +0200 -+++ e/extras/NetworkGraphicsDemo/CMakeLists.txt 2021-09-25 20:14:30.376577084 +0200 -@@ -31,6 +31,13 @@ - JUCE_USE_CURL=0 JUCE_WEB_BROWSER=0) - - target_link_libraries(NetworkGraphicsDemo PRIVATE -+ "FLAC" -+ "ogg" -+ "png" -+ "vorbis" -+ "vorbisenc" -+ "vorbisfile" -+ "z" - juce::juce_audio_utils - juce::juce_cryptography - juce::juce_opengl -diff -ruN a/extras/UnitTestRunner/CMakeLists.txt e/extras/UnitTestRunner/CMakeLists.txt ---- a/extras/UnitTestRunner/CMakeLists.txt 2021-09-20 14:26:04.000000000 +0200 -+++ e/extras/UnitTestRunner/CMakeLists.txt 2021-09-25 20:22:11.631027145 +0200 -@@ -33,6 +33,13 @@ - JUCE_WEB_BROWSER=0) - - target_link_libraries(UnitTestRunner PRIVATE -+ "FLAC" -+ "ogg" -+ "png16" -+ "vorbis" -+ "vorbisenc" -+ "vorbisfile" -+ "z" - juce::juce_analytics - juce::juce_audio_utils - juce::juce_dsp -diff -ruN a/extras/Build/juceaide/CMakeLists.txt b/extras/Build/juceaide/CMakeLists.txt ---- a/extras/Build/juceaide/CMakeLists.txt 2021-09-20 14:26:04.000000000 +0200 -+++ b/extras/Build/juceaide/CMakeLists.txt 2021-09-25 18:52:06.968927572 +0200 -@@ -37,6 +37,9 @@ - JUCE_USE_CURL=0) - - target_link_libraries(juceaide PRIVATE -+ "jpeg" -+ "png16" -+ "z" - juce::juce_build_tools - juce::juce_recommended_config_flags - juce::juce_recommended_lto_flags -diff -ruN a/extras/Projucer/CMakeLists.txt b/extras/Projucer/CMakeLists.txt ---- a/extras/Projucer/CMakeLists.txt 2021-09-20 14:26:04.000000000 +0200 -+++ b/extras/Projucer/CMakeLists.txt 2021-09-25 19:02:39.550915895 +0200 -@@ -158,6 +158,8 @@ - ../Build/CMake/juce_runtime_arch_detection.cpp) - - target_link_libraries(Projucer PRIVATE -+ "png16" -+ "jpeg" - ProjucerData - juce::juce_build_tools - juce::juce_cryptography Copied: juce/repos/community-staging-x86_64/juce-6.1.2-cmake_link_against_system_deps.patch (from rev 1025785, juce/trunk/juce-6.1.2-cmake_link_against_system_deps.patch) =================================================================== --- juce-6.1.2-cmake_link_against_system_deps.patch (rev 0) +++ juce-6.1.2-cmake_link_against_system_deps.patch 2021-09-27 19:35:15 UTC (rev 1025786) @@ -0,0 +1,88 @@ +diff -ruN a/extras/AudioPerformanceTest/CMakeLists.txt e/extras/AudioPerformanceTest/CMakeLists.txt +--- a/extras/AudioPerformanceTest/CMakeLists.txt 2021-09-20 14:26:04.000000000 +0200 ++++ e/extras/AudioPerformanceTest/CMakeLists.txt 2021-09-25 20:11:11.782908700 +0200 +@@ -32,6 +32,11 @@ + JUCE_USE_CURL=0 JUCE_WEB_BROWSER=0) + + target_link_libraries(AudioPerformanceTest PRIVATE ++ "FLAC" ++ "ogg" ++ "vorbis" ++ "vorbisenc" ++ "vorbisfile" + juce::juce_audio_utils + juce::juce_recommended_config_flags + juce::juce_recommended_lto_flags +diff -ruN a/extras/AudioPluginHost/CMakeLists.txt e/extras/AudioPluginHost/CMakeLists.txt +--- a/extras/AudioPluginHost/CMakeLists.txt 2021-09-20 14:26:04.000000000 +0200 ++++ e/extras/AudioPluginHost/CMakeLists.txt 2021-09-25 20:31:04.882600939 +0200 +@@ -55,6 +55,10 @@ + JUCE_WEB_BROWSER=0) + + target_link_libraries(AudioPluginHost PRIVATE ++ "ogg" ++ "vorbis" ++ "vorbisenc" ++ "vorbisfile" + juce::juce_audio_utils + juce::juce_cryptography + juce::juce_dsp +diff -ruN a/extras/NetworkGraphicsDemo/CMakeLists.txt e/extras/NetworkGraphicsDemo/CMakeLists.txt +--- a/extras/NetworkGraphicsDemo/CMakeLists.txt 2021-09-20 14:26:04.000000000 +0200 ++++ e/extras/NetworkGraphicsDemo/CMakeLists.txt 2021-09-25 20:14:30.376577084 +0200 +@@ -31,6 +31,13 @@ + JUCE_USE_CURL=0 JUCE_WEB_BROWSER=0) + + target_link_libraries(NetworkGraphicsDemo PRIVATE ++ "FLAC" ++ "ogg" ++ "png" ++ "vorbis" ++ "vorbisenc" ++ "vorbisfile" ++ "z" + juce::juce_audio_utils + juce::juce_cryptography + juce::juce_opengl +diff -ruN a/extras/UnitTestRunner/CMakeLists.txt e/extras/UnitTestRunner/CMakeLists.txt +--- a/extras/UnitTestRunner/CMakeLists.txt 2021-09-20 14:26:04.000000000 +0200 ++++ e/extras/UnitTestRunner/CMakeLists.txt 2021-09-25 20:22:11.631027145 +0200 +@@ -33,6 +33,13 @@ + JUCE_WEB_BROWSER=0) + + target_link_libraries(UnitTestRunner PRIVATE ++ "FLAC" ++ "ogg" ++ "png16" ++ "vorbis" ++ "vorbisenc" ++ "vorbisfile" ++ "z" + juce::juce_analytics + juce::juce_audio_utils + juce::juce_dsp +diff -ruN a/extras/Build/juceaide/CMakeLists.txt b/extras/Build/juceaide/CMakeLists.txt +--- a/extras/Build/juceaide/CMakeLists.txt 2021-09-20 14:26:04.000000000 +0200 ++++ b/extras/Build/juceaide/CMakeLists.txt 2021-09-25 18:52:06.968927572 +0200 +@@ -37,6 +37,9 @@ + JUCE_USE_CURL=0) + + target_link_libraries(juceaide PRIVATE ++ "jpeg" ++ "png16" ++ "z" + juce::juce_build_tools + juce::juce_recommended_config_flags + juce::juce_recommended_lto_flags +diff -ruN a/extras/Projucer/CMakeLists.txt b/extras/Projucer/CMakeLists.txt +--- a/extras/Projucer/CMakeLists.txt 2021-09-20 14:26:04.000000000 +0200 ++++ b/extras/Projucer/CMakeLists.txt 2021-09-25 19:02:39.550915895 +0200 +@@ -158,6 +158,8 @@ + ../Build/CMake/juce_runtime_arch_detection.cpp) + + target_link_libraries(Projucer PRIVATE ++ "png16" ++ "jpeg" + ProjucerData + juce::juce_build_tools + juce::juce_cryptography Copied: juce/repos/community-staging-x86_64/juce-6.1.2-devendor_libs.patch (from rev 1025785, juce/trunk/juce-6.1.2-devendor_libs.patch) =================================================================== --- juce-6.1.2-devendor_libs.patch (rev 0) +++ juce-6.1.2-devendor_libs.patch 2021-09-27 19:35:15 UTC (rev 1025786) @@ -0,0 +1,87 @@ +diff -ruN a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExporter.cpp b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExporter.cpp +--- a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExporter.cpp 2021-09-20 14:26:04.000000000 +0200 ++++ b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExporter.cpp 2021-09-26 21:02:34.760731676 +0200 +@@ -528,6 +528,39 @@ + packages.add ("gtk+-x11-3.0"); + } + ++ // as vendored libraries were removed, we need to link against system libraries ++ if (project.getEnabledModules().isModuleEnabled ("juce_core")) ++ { ++ packages.add ("zlib"); ++ } ++ if (project.getEnabledModules().isModuleEnabled ("juce_graphics")) ++ { ++ packages.add ("libjpeg"); ++ packages.add ("libpng"); ++ } ++ if (project.getEnabledModules().isModuleEnabled ("juce_audio_formats")) ++ { ++ if(project.isConfigFlagEnabled ("JUCE_USE_FLAC", true)) ++ { ++ packages.add ("flac"); ++ } ++ ++ if(project.isConfigFlagEnabled ("JUCE_USE_OGGVORBIS", true)) ++ { ++ packages.add ("vorbis"); ++ packages.add ("vorbisfile"); ++ packages.add ("vorbisenc"); ++ packages.add ("ogg"); ++ } ++ } ++ if (project.getEnabledModules().isModuleEnabled ("juce_audio_devices")) ++ { ++ if(project.isConfigFlagEnabled ("JUCE_JACK", true)) ++ { ++ packages.add ("jack"); ++ } ++ } ++ + packages.removeEmptyStrings(); + packages.removeDuplicates (false); + +diff -ruN a/modules/juce_core/juce_core.h b/modules/juce_core/juce_core.h +--- a/modules/juce_core/juce_core.h 2021-09-20 14:26:04.000000000 +0200 ++++ b/modules/juce_core/juce_core.h 2021-09-26 21:16:41.501526112 +0200 +@@ -65,6 +65,31 @@ + + #include "system/juce_TargetPlatform.h" + ++#ifdef JUCE_INCLUDE_ZLIB_CODE ++# undef JUCE_INCLUDE_ZLIB_CODE ++#endif ++#define JUCE_INCLUDE_ZLIB_CODE 0 ++ ++#ifdef JUCE_INCLUDE_FLAC_CODE ++# undef JUCE_INCLUDE_FLAC_CODE ++#endif ++#define JUCE_INCLUDE_FLAC_CODE 0 ++ ++#ifdef JUCE_INCLUDE_OGGVORBIS_CODE ++# undef JUCE_INCLUDE_OGGVORBIS_CODE ++#endif ++#define JUCE_INCLUDE_OGGVORBIS_CODE 0 ++ ++#ifdef JUCE_INCLUDE_JPEGLIB_CODE ++# undef JUCE_INCLUDE_JPEGLIB_CODE ++#endif ++#define JUCE_INCLUDE_JPEGLIB_CODE 0 ++ ++#ifdef JUCE_INCLUDE_PNGLIB_CODE ++# undef JUCE_INCLUDE_PNGLIB_CODE ++#endif ++#define JUCE_INCLUDE_PNGLIB_CODE 0 ++ + //============================================================================== + /** Config: JUCE_FORCE_DEBUG + +@@ -124,7 +149,7 @@ + specify the path where your zlib headers live. + */ + #ifndef JUCE_INCLUDE_ZLIB_CODE +- #define JUCE_INCLUDE_ZLIB_CODE 1 ++ #define JUCE_INCLUDE_ZLIB_CODE 0 + #endif + + #ifndef JUCE_ZLIB_INCLUDE_PATH Deleted: juce-6.1.2-fst_vst.patch =================================================================== --- juce-6.1.2-fst_vst.patch 2021-09-27 19:34:58 UTC (rev 1025785) +++ juce-6.1.2-fst_vst.patch 2021-09-27 19:35:15 UTC (rev 1025786) @@ -1,27 +0,0 @@ -diff -ruN a/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp b/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp ---- a/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp 2021-09-20 14:26:04.000000000 +0200 -+++ b/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp 2021-09-26 00:58:02.047887074 +0200 -@@ -84,8 +84,7 @@ - // field in the Projucer. The VST2 SDK can be obtained from the - // vstsdk3610_11_06_2018_build_37 (or older) VST3 SDK or JUCE version 5.3.2. You - // also need a VST2 license from Steinberg to distribute VST2 plug-ins. --#include "pluginterfaces/vst2.x/aeffect.h" --#include "pluginterfaces/vst2.x/aeffectx.h" -+#include "../../juce_audio_processors/format_types/juce_VSTInterface.h" - } - - JUCE_END_IGNORE_WARNINGS_MSVC -diff -ruN a/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp b/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp ---- a/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp 2021-09-20 14:26:04.000000000 +0200 -+++ b/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp 2021-09-26 01:03:15.142161924 +0200 -@@ -46,8 +46,8 @@ - // paths or use the "VST (Legacy) SDK Folder" field in the Projucer. The VST2 - // SDK can be obtained from the vstsdk3610_11_06_2018_build_37 (or older) VST3 - // SDK or JUCE version 5.3.2. --#include <pluginterfaces/vst2.x/aeffect.h> --#include <pluginterfaces/vst2.x/aeffectx.h> -+#define FST2VST 1 -+#include <pluginterfaces/fst/fst.h> - } - - #include "juce_VSTCommon.h" Copied: juce/repos/community-staging-x86_64/juce-6.1.2-fst_vst.patch (from rev 1025785, juce/trunk/juce-6.1.2-fst_vst.patch) =================================================================== --- juce-6.1.2-fst_vst.patch (rev 0) +++ juce-6.1.2-fst_vst.patch 2021-09-27 19:35:15 UTC (rev 1025786) @@ -0,0 +1,27 @@ +diff -ruN a/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp b/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp +--- a/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp 2021-09-20 14:26:04.000000000 +0200 ++++ b/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp 2021-09-26 00:58:02.047887074 +0200 +@@ -84,8 +84,7 @@ + // field in the Projucer. The VST2 SDK can be obtained from the + // vstsdk3610_11_06_2018_build_37 (or older) VST3 SDK or JUCE version 5.3.2. You + // also need a VST2 license from Steinberg to distribute VST2 plug-ins. +-#include "pluginterfaces/vst2.x/aeffect.h" +-#include "pluginterfaces/vst2.x/aeffectx.h" ++#include "../../juce_audio_processors/format_types/juce_VSTInterface.h" + } + + JUCE_END_IGNORE_WARNINGS_MSVC +diff -ruN a/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp b/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp +--- a/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp 2021-09-20 14:26:04.000000000 +0200 ++++ b/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp 2021-09-26 01:03:15.142161924 +0200 +@@ -46,8 +46,8 @@ + // paths or use the "VST (Legacy) SDK Folder" field in the Projucer. The VST2 + // SDK can be obtained from the vstsdk3610_11_06_2018_build_37 (or older) VST3 + // SDK or JUCE version 5.3.2. +-#include <pluginterfaces/vst2.x/aeffect.h> +-#include <pluginterfaces/vst2.x/aeffectx.h> ++#define FST2VST 1 ++#include <pluginterfaces/fst/fst.h> + } + + #include "juce_VSTCommon.h" Deleted: juce-6.1.2-projucer_disable_update_check.patch =================================================================== --- juce-6.1.2-projucer_disable_update_check.patch 2021-09-27 19:34:58 UTC (rev 1025785) +++ juce-6.1.2-projucer_disable_update_check.patch 2021-09-27 19:35:15 UTC (rev 1025786) @@ -1,11 +0,0 @@ -diff -ruN a/extras/Projucer/Source/Application/jucer_AutoUpdater.cpp b/extras/Projucer/Source/Application/jucer_AutoUpdater.cpp ---- a/extras/Projucer/Source/Application/jucer_AutoUpdater.cpp 2021-09-20 14:26:04.000000000 +0200 -+++ b/extras/Projucer/Source/Application/jucer_AutoUpdater.cpp 2021-09-26 00:16:57.933901901 +0200 -@@ -41,6 +41,7 @@ - - void LatestVersionCheckerAndUpdater::checkForNewVersion (bool background) - { -+ return; - if (! isThreadRunning()) - { - backgroundCheck = background; Copied: juce/repos/community-staging-x86_64/juce-6.1.2-projucer_disable_update_check.patch (from rev 1025785, juce/trunk/juce-6.1.2-projucer_disable_update_check.patch) =================================================================== --- juce-6.1.2-projucer_disable_update_check.patch (rev 0) +++ juce-6.1.2-projucer_disable_update_check.patch 2021-09-27 19:35:15 UTC (rev 1025786) @@ -0,0 +1,11 @@ +diff -ruN a/extras/Projucer/Source/Application/jucer_AutoUpdater.cpp b/extras/Projucer/Source/Application/jucer_AutoUpdater.cpp +--- a/extras/Projucer/Source/Application/jucer_AutoUpdater.cpp 2021-09-20 14:26:04.000000000 +0200 ++++ b/extras/Projucer/Source/Application/jucer_AutoUpdater.cpp 2021-09-26 00:16:57.933901901 +0200 +@@ -41,6 +41,7 @@ + + void LatestVersionCheckerAndUpdater::checkForNewVersion (bool background) + { ++ return; + if (! isThreadRunning()) + { + backgroundCheck = background; Deleted: juce-6.1.2-projucer_juce_paths.patch =================================================================== --- juce-6.1.2-projucer_juce_paths.patch 2021-09-27 19:34:58 UTC (rev 1025785) +++ juce-6.1.2-projucer_juce_paths.patch 2021-09-27 19:35:15 UTC (rev 1025786) @@ -1,22 +0,0 @@ -diff -ruN a/extras/Projucer/Source/Settings/jucer_StoredSettings.cpp b/extras/Projucer/Source/Settings/jucer_StoredSettings.cpp ---- a/extras/Projucer/Source/Settings/jucer_StoredSettings.cpp 2021-09-20 14:26:04.000000000 +0200 -+++ b/extras/Projucer/Source/Settings/jucer_StoredSettings.cpp 2021-09-26 00:35:56.119917679 +0200 -@@ -358,15 +358,15 @@ - { - if (key == Ids::jucePath) - { -- return (os == TargetOS::windows ? "C:\\JUCE" : "~/JUCE"); -+ return (os == TargetOS::windows ? "C:\\JUCE" : "/usr/share/doc/juce"); - } - else if (key == Ids::defaultJuceModulePath) - { -- return (os == TargetOS::windows ? "C:\\JUCE\\modules" : "~/JUCE/modules"); -+ return (os == TargetOS::windows ? "C:\\JUCE\\modules" : "/usr/share/juce/modules"); - } - else if (key == Ids::defaultUserModulePath) - { -- return (os == TargetOS::windows ? "C:\\modules" : "~/modules"); -+ return (os == TargetOS::windows ? "C:\\modules" : "~/.local/share/juce/modules"); - } - else if (key == Ids::vstLegacyPath) - { Copied: juce/repos/community-staging-x86_64/juce-6.1.2-projucer_juce_paths.patch (from rev 1025785, juce/trunk/juce-6.1.2-projucer_juce_paths.patch) =================================================================== --- juce-6.1.2-projucer_juce_paths.patch (rev 0) +++ juce-6.1.2-projucer_juce_paths.patch 2021-09-27 19:35:15 UTC (rev 1025786) @@ -0,0 +1,22 @@ +diff -ruN a/extras/Projucer/Source/Settings/jucer_StoredSettings.cpp b/extras/Projucer/Source/Settings/jucer_StoredSettings.cpp +--- a/extras/Projucer/Source/Settings/jucer_StoredSettings.cpp 2021-09-20 14:26:04.000000000 +0200 ++++ b/extras/Projucer/Source/Settings/jucer_StoredSettings.cpp 2021-09-26 00:35:56.119917679 +0200 +@@ -358,15 +358,15 @@ + { + if (key == Ids::jucePath) + { +- return (os == TargetOS::windows ? "C:\\JUCE" : "~/JUCE"); ++ return (os == TargetOS::windows ? "C:\\JUCE" : "/usr/share/doc/juce"); + } + else if (key == Ids::defaultJuceModulePath) + { +- return (os == TargetOS::windows ? "C:\\JUCE\\modules" : "~/JUCE/modules"); ++ return (os == TargetOS::windows ? "C:\\JUCE\\modules" : "/usr/share/juce/modules"); + } + else if (key == Ids::defaultUserModulePath) + { +- return (os == TargetOS::windows ? "C:\\modules" : "~/modules"); ++ return (os == TargetOS::windows ? "C:\\modules" : "~/.local/share/juce/modules"); + } + else if (key == Ids::vstLegacyPath) + { Deleted: juce_VSTInterface.h =================================================================== --- juce_VSTInterface.h 2021-09-27 19:34:58 UTC (rev 1025785) +++ juce_VSTInterface.h 2021-09-27 19:35:15 UTC (rev 1025786) @@ -1,814 +0,0 @@ -/* - ============================================================================== - - This file is part of the JUCE library. - Copyright (c) 2017 - ROLI Ltd. - - JUCE is an open source library subject to commercial or open-source - licensing. - - By using JUCE, you agree to the terms of both the JUCE 5 End-User License - Agreement and JUCE 5 Privacy Policy (both updated and effective as of the - 27th April 2017). - - End User License Agreement: www.juce.com/juce-5-licence - Privacy Policy: www.juce.com/juce-5-privacy-policy - - Or: You may also use this code under the terms of the GPL v3 (see - www.gnu.org/licenses). - - JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER - EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE - DISCLAIMED. - - ============================================================================== -*/ - -/* - Copyright © 2019 IOhannes m zmölnig - - Provide additional structs & enum-aliases, to allow compilation with JUCE-5.4.1 - - The names of the struct-members and enum-aliases have been derived by comparing - juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp of - both JUCE-5.3.2 and JUCE-5.4.1 - */ - -#define JUCE_VSTINTERFACE_H_INCLUDED - -using namespace juce; - -#if JUCE_MSVC - #define VSTINTERFACECALL __cdecl - #pragma pack(push) - #pragma pack(8) -#elif JUCE_MAC || JUCE_IOS - #define VSTINTERFACECALL - #if JUCE_64BIT - #pragma options align=power - #else - #pragma options align=mac68k - #endif -#else - #define VSTINTERFACECALL - #pragma pack(push, 8) -#endif - -#define VSTCALLBACK VSTINTERFACECALL - -const int32 juceVstInterfaceVersion = 2400; -#define kVstVersion 2400 -const int32 juceVstInterfaceIdentifier = 0x56737450; // The "magic" identifier in the SDK is 'VstP'. - -//============================================================================== -/** Structure used for VSTs - - @tags{Audio} -*/ -struct VstEffectInterface -{ - int32 interfaceIdentifier; - pointer_sized_int (VSTINTERFACECALL* dispatchFunction) (VstEffectInterface*, int32 op, int32 index, pointer_sized_int value, void* ptr, float opt); - void (VSTINTERFACECALL* processAudioFunction) (VstEffectInterface*, float** inputs, float** outputs, int32 numSamples); - void (VSTINTERFACECALL* setParameterValueFunction) (VstEffectInterface*, int32 parameterIndex, float value); - float (VSTINTERFACECALL* getParameterValueFunction) (VstEffectInterface*, int32 parameterIndex); - int32 numPrograms; - int32 numParameters; - int32 numInputChannels; - int32 numOutputChannels; - int32 flags; - pointer_sized_int hostSpace1; - pointer_sized_int hostSpace2; - int32 latency; - int32 deprecated1; - int32 deprecated2; - float deprecated3; - void* effectPointer; - void* userPointer; - int32 plugInIdentifier; - int32 plugInVersion; - void (VSTINTERFACECALL* processAudioInplaceFunction) (VstEffectInterface*, float** inputs, float** outputs, int32 numSamples); - void (VSTINTERFACECALL* processDoubleAudioInplaceFunction) (VstEffectInterface*, double** inputs, double** outputs, int32 numSamples); - char emptySpace[56]; -}; - -struct AEffect; -typedef pointer_sized_int (VSTINTERFACECALL*AEffectDispatcherProc)(AEffect*, int32 op, int32 index, pointer_sized_int value, void* ptr, float opt); -typedef void (VSTINTERFACECALL*AEffectProcessProc)(AEffect*, float** inputs, float** outputs, int32 numSamples); -typedef void (VSTINTERFACECALL*AEffectProcessDoubleProc)(AEffect*, double** inputs, double** outputs, int32 numSamples); -typedef float (VSTINTERFACECALL*AEffectGetParameterProc)(AEffect*, int32 parameterIndex); -typedef void (VSTINTERFACECALL*AEffectSetParameterProc)(AEffect*, int32 parameterIndex, float value); - -struct AEffect -{ - int32 magic; - AEffectDispatcherProc dispatcher; - AEffectProcessProc process; - AEffectSetParameterProc setParameter; - AEffectGetParameterProc getParameter; - int32 numPrograms; - int32 numParams; - int32 numInputs; - int32 numOutputs; - int32 flags; - pointer_sized_int hostSpace1; - pointer_sized_int hostSpace2; - int32 initialDelay; - int32 deprecated1; - int32 deprecated2; - float deprecated3; - void* object; - void* userPointer; - int32 uniqueID; - int32 version; - AEffectProcessProc processReplacing; - AEffectProcessDoubleProc processDoubleReplacing; - char emptySpace[56]; -}; - - -typedef pointer_sized_int (VSTINTERFACECALL* VstHostCallback) (VstEffectInterface*, int32 op, int32 index, pointer_sized_int value, void* ptr, float opt); -typedef pointer_sized_int (VSTINTERFACECALL* audioMasterCallback) (AEffect*, int32 op, int32 index, pointer_sized_int value, void* ptr, float opt); - -enum VstEffectInterfaceFlags -{ - vstEffectFlagHasEditor = 1, - vstEffectFlagInplaceAudio = 16, - vstEffectFlagDataInChunks = 32, - vstEffectFlagIsSynth = 256, - vstEffectFlagInplaceDoubleAudio = 4096 - - , effFlagsHasEditor = vstEffectFlagHasEditor - , effFlagsNoSoundInStop = 0 // FIXXME - , effFlagsProgramChunks = vstEffectFlagDataInChunks - - , effFlagsCanReplacing = vstEffectFlagInplaceAudio - , effFlagsIsSynth = vstEffectFlagIsSynth - , effFlagsCanDoubleReplacing = vstEffectFlagInplaceDoubleAudio -}; - -//============================================================================== -enum VstHostToPlugInOpcodes -{ - plugInOpcodeOpen, - plugInOpcodeClose, - plugInOpcodeSetCurrentProgram, - plugInOpcodeGetCurrentProgram, - plugInOpcodeSetCurrentProgramName, - plugInOpcodeGetCurrentProgramName, - plugInOpcodeGetParameterLabel, - plugInOpcodeGetParameterText, - plugInOpcodeGetParameterName, - plugInOpcodeSetSampleRate = plugInOpcodeGetParameterName + 2, - plugInOpcodeSetBlockSize, - plugInOpcodeResumeSuspend, - plugInOpcodeGetEditorBounds, - plugInOpcodeOpenEditor, - plugInOpcodeCloseEditor, - plugInOpcodeDrawEditor, - plugInOpcodeGetMouse, - plugInOpcodeEditorIdle = plugInOpcodeGetMouse + 2, - plugInOpcodeeffEditorTop, - plugInOpcodeSleepEditor, - plugInOpcodeIdentify, - plugInOpcodeGetData, - plugInOpcodeSetData, - plugInOpcodePreAudioProcessingEvents, - plugInOpcodeIsParameterAutomatable, - plugInOpcodeParameterValueForText, - plugInOpcodeGetProgramName = plugInOpcodeParameterValueForText + 2, - plugInOpcodeConnectInput = plugInOpcodeGetProgramName + 2, - plugInOpcodeConnectOutput, - plugInOpcodeGetInputPinProperties, - plugInOpcodeGetOutputPinProperties, - plugInOpcodeGetPlugInCategory, - plugInOpcodeSetSpeakerConfiguration = plugInOpcodeGetPlugInCategory + 7, - plugInOpcodeSetBypass = plugInOpcodeSetSpeakerConfiguration + 2, - plugInOpcodeGetPlugInName, - plugInOpcodeGetManufacturerName = plugInOpcodeGetPlugInName + 2, - plugInOpcodeGetManufacturerProductName, - plugInOpcodeGetManufacturerVersion, - plugInOpcodeManufacturerSpecific, - plugInOpcodeCanPlugInDo, - plugInOpcodeGetTailSize, - plugInOpcodeIdle, - plugInOpcodeKeyboardFocusRequired = plugInOpcodeIdle + 4, - plugInOpcodeGetVstInterfaceVersion, - plugInOpcodeGetCurrentMidiProgram = plugInOpcodeGetVstInterfaceVersion + 5, - plugInOpcodeGetSpeakerArrangement = plugInOpcodeGetCurrentMidiProgram + 6, - plugInOpcodeNextPlugInUniqueID, - plugInOpcodeStartProcess, - plugInOpcodeStopProcess, - plugInOpcodeSetNumberOfSamplesToProcess, - plugInOpcodeSetSampleFloatType = plugInOpcodeSetNumberOfSamplesToProcess + 4, - pluginOpcodeGetNumMidiInputChannels, - pluginOpcodeGetNumMidiOutputChannels, - plugInOpcodeMaximum = pluginOpcodeGetNumMidiOutputChannels - - , effOpen = plugInOpcodeOpen - , effClose = plugInOpcodeClose - , effSetProgram = plugInOpcodeSetCurrentProgram - , effGetProgram = plugInOpcodeGetCurrentProgram - , effSetProgramName = plugInOpcodeSetCurrentProgramName - , effGetProgramName = plugInOpcodeGetCurrentProgramName - , effGetParamLabel = plugInOpcodeGetParameterLabel - , effGetParamDisplay = plugInOpcodeGetParameterText - , effGetParamName = plugInOpcodeGetParameterName - , effSetSampleRate = plugInOpcodeSetSampleRate - , effSetBlockSize = plugInOpcodeSetBlockSize - , effMainsChanged = plugInOpcodeResumeSuspend - , effEditGetRect = plugInOpcodeGetEditorBounds - , effEditOpen = plugInOpcodeOpenEditor - , effEditClose = plugInOpcodeCloseEditor - , effIdentify = plugInOpcodeIdentify - , effGetChunk = plugInOpcodeGetData - , effSetChunk = plugInOpcodeSetData - , effProcessEvents = plugInOpcodePreAudioProcessingEvents - , effCanBeAutomated = plugInOpcodeIsParameterAutomatable - , effString2Parameter = plugInOpcodeParameterValueForText - , effGetProgramNameIndexed = plugInOpcodeGetProgramName - , effGetInputProperties = plugInOpcodeGetInputPinProperties - , effGetOutputProperties = plugInOpcodeGetOutputPinProperties - , effGetPlugCategory = plugInOpcodeGetPlugInCategory - , effSetSpeakerArrangement = plugInOpcodeSetSpeakerConfiguration - , effSetBypass = plugInOpcodeSetBypass - , effGetEffectName = plugInOpcodeGetPlugInName - , effGetProductString = plugInOpcodeGetManufacturerProductName - , effGetVendorString = plugInOpcodeGetManufacturerName - , effGetVendorVersion = plugInOpcodeGetManufacturerVersion - , effVendorSpecific = plugInOpcodeManufacturerSpecific - , effCanDo = plugInOpcodeCanPlugInDo - , effGetTailSize = plugInOpcodeGetTailSize - , effKeysRequired = plugInOpcodeKeyboardFocusRequired - , effGetVstVersion = plugInOpcodeGetVstInterfaceVersion - , effGetCurrentMidiProgram = plugInOpcodeGetCurrentMidiProgram - , effGetSpeakerArrangement = plugInOpcodeGetSpeakerArrangement - , effSetTotalSampleToProcess = plugInOpcodeSetNumberOfSamplesToProcess - , effSetProcessPrecision = plugInOpcodeSetSampleFloatType - , effGetNumMidiInputChannels = pluginOpcodeGetNumMidiInputChannels - , effGetNumMidiOutputChannels = pluginOpcodeGetNumMidiOutputChannels - - , effConnectInput = plugInOpcodeConnectInput - , effConnectOutput = plugInOpcodeConnectOutput - , effEditIdle = plugInOpcodeEditorIdle - , effIdle = plugInOpcodeIdle - , effShellGetNextPlugin = plugInOpcodeNextPlugInUniqueID - , effStartProcess = plugInOpcodeStartProcess - , effStopProcess = plugInOpcodeStopProcess -}; - - -enum VstPlugInToHostOpcodes -{ - hostOpcodeParameterChanged, - hostOpcodeVstVersion, - hostOpcodeCurrentId, - hostOpcodeIdle, - hostOpcodePinConnected, - hostOpcodePlugInWantsMidi = hostOpcodePinConnected + 2, - hostOpcodeGetTimingInfo, - hostOpcodePreAudioProcessingEvents, - hostOpcodeSetTime, - hostOpcodeTempoAt, - hostOpcodeGetNumberOfAutomatableParameters, - hostOpcodeGetParameterInterval, - hostOpcodeIOModified, - hostOpcodeNeedsIdle, - hostOpcodeWindowSize, - hostOpcodeGetSampleRate, - hostOpcodeGetBlockSize, - hostOpcodeGetInputLatency, - hostOpcodeGetOutputLatency, - hostOpcodeGetPreviousPlugIn, - hostOpcodeGetNextPlugIn, - hostOpcodeWillReplace, - hostOpcodeGetCurrentAudioProcessingLevel, - hostOpcodeGetAutomationState, - hostOpcodeOfflineStart, - hostOpcodeOfflineReadSource, - hostOpcodeOfflineWrite, - hostOpcodeOfflineGetCurrentPass, - hostOpcodeOfflineGetCurrentMetaPass, - hostOpcodeSetOutputSampleRate, - hostOpcodeGetOutputSpeakerConfiguration, - hostOpcodeGetManufacturerName, - hostOpcodeGetProductName, - hostOpcodeGetManufacturerVersion, - hostOpcodeManufacturerSpecific, - hostOpcodeSetIcon, - hostOpcodeCanHostDo, - hostOpcodeGetLanguage, - hostOpcodeOpenEditorWindow, - hostOpcodeCloseEditorWindow, - hostOpcodeGetDirectory, - hostOpcodeUpdateView, - hostOpcodeParameterChangeGestureBegin, - hostOpcodeParameterChangeGestureEnd - - , audioMasterProcessEvents = hostOpcodePreAudioProcessingEvents - , audioMasterWantMidi = hostOpcodePlugInWantsMidi - , audioMasterVendorSpecific = hostOpcodeManufacturerSpecific - , audioMasterAutomate = hostOpcodeParameterChanged - , audioMasterBeginEdit = hostOpcodeParameterChangeGestureBegin - , audioMasterEndEdit = hostOpcodeParameterChangeGestureEnd - , audioMasterUpdateDisplay = hostOpcodeUpdateView - , audioMasterIOChanged = hostOpcodeIOModified - , audioMasterCanDo = hostOpcodeCanHostDo - , audioMasterGetCurrentProcessLevel = hostOpcodeGetCurrentAudioProcessingLevel - , audioMasterGetTime = hostOpcodeGetTimingInfo - , audioMasterSizeWindow = hostOpcodeWindowSize - , audioMasterVersion = hostOpcodeVstVersion - - , audioMasterCloseWindow = hostOpcodeCloseEditorWindow - , audioMasterCurrentId = hostOpcodeCurrentId - , audioMasterGetAutomationState = hostOpcodeGetAutomationState - , audioMasterGetBlockSize = hostOpcodeGetBlockSize - , audioMasterGetDirectory = hostOpcodeGetDirectory - , audioMasterGetInputLatency = hostOpcodeGetInputLatency - , audioMasterGetLanguage = hostOpcodeGetLanguage - , audioMasterGetNextPlug = hostOpcodeGetNextPlugIn - , audioMasterGetNumAutomatableParameters = hostOpcodeGetNumberOfAutomatableParameters - , audioMasterGetOutputLatency = hostOpcodeGetOutputLatency - , audioMasterGetOutputSpeakerArrangement = hostOpcodeGetOutputSpeakerConfiguration - , audioMasterGetParameterQuantization = hostOpcodeGetParameterInterval - , audioMasterGetPreviousPlug = hostOpcodeGetPreviousPlugIn - , audioMasterGetProductString = hostOpcodeGetProductName - , audioMasterGetSampleRate = hostOpcodeGetSampleRate - , audioMasterGetVendorString = hostOpcodeGetManufacturerName - , audioMasterGetVendorVersion = hostOpcodeGetManufacturerVersion - , audioMasterIdle = hostOpcodeIdle - , audioMasterNeedIdle = hostOpcodeNeedsIdle - , audioMasterOfflineGetCurrentMetaPass = hostOpcodeOfflineGetCurrentMetaPass - , audioMasterOfflineGetCurrentPass = hostOpcodeOfflineGetCurrentPass - , audioMasterOfflineRead = hostOpcodeOfflineReadSource - , audioMasterOfflineStart = hostOpcodeOfflineStart - , audioMasterOfflineWrite = hostOpcodeOfflineWrite - , audioMasterOpenWindow = hostOpcodeOpenEditorWindow - , audioMasterPinConnected = hostOpcodePinConnected - , audioMasterSetIcon = hostOpcodeSetIcon - , audioMasterSetOutputSampleRate = hostOpcodeSetOutputSampleRate - , audioMasterSetTime = hostOpcodeSetTime - , audioMasterTempoAt = hostOpcodeTempoAt - , audioMasterWillReplaceOrAccumulate = hostOpcodeWillReplace - -}; -typedef enum VstPlugInToHostOpcodes AudioMasterOpcodesX; - -//============================================================================== -enum VstProcessingSampleType -{ - vstProcessingSampleTypeFloat, - vstProcessingSampleTypeDouble - - , kVstProcessPrecision32 = vstProcessingSampleTypeFloat - , kVstProcessPrecision64 = vstProcessingSampleTypeDouble -}; - -//============================================================================== -// These names must be identical to the Steinberg SDK so JUCE users can set -// exactly what they want. -typedef enum VstPlugInCategory -{ - kPlugCategUnknown, - kPlugCategEffect, - kPlugCategSynth, - kPlugCategAnalysis, - kPlugCategMastering, - kPlugCategSpacializer, - kPlugCategRoomFx, - kPlugSurroundFx, - kPlugCategRestoration, - kPlugCategOfflineProcess, - kPlugCategShell, - kPlugCategGenerator -} VstPlugCategory; - -//============================================================================== -/** Structure used for VSTs - - @tags{Audio} -*/ -struct VstEditorBounds -{ - int16 upper; - int16 leftmost; - int16 lower; - int16 rightmost; -}; -struct ERect { - int16 top; - int16 left; - int16 bottom; - int16 right; -}; - -//============================================================================== -enum VstMaxStringLengths -{ - vstMaxNameLength = 64, - vstMaxParameterOrPinLabelLength = 64, - vstMaxParameterOrPinShortLabelLength = 8, - vstMaxCategoryLength = 24, - vstMaxManufacturerStringLength = 64, - vstMaxPlugInNameStringLength = 64 - - , kVstMaxLabelLen = vstMaxParameterOrPinLabelLength - , kVstMaxShortLabelLen = vstMaxParameterOrPinShortLabelLength - , kVstMaxProductStrLen = vstMaxPlugInNameStringLength - , kVstMaxVendorStrLen = vstMaxManufacturerStringLength -}; - -//============================================================================== -/** Structure used for VSTs - - @tags{Audio} -*/ -struct VstPinInfo -{ - char text[vstMaxParameterOrPinLabelLength]; - int32 flags; - int32 configurationType; - char shortText[vstMaxParameterOrPinShortLabelLength]; - char unused[48]; -}; -struct VstPinProperties -{ - char label[vstMaxParameterOrPinLabelLength]; - int32 flags; - int32 arrangementType; - char shortLabel[vstMaxParameterOrPinShortLabelLength]; - char unused[48]; -}; - -enum VstPinInfoFlags -{ - vstPinInfoFlagIsActive = 1, - vstPinInfoFlagIsStereo = 2, - vstPinInfoFlagValid = 4 - - , kVstPinIsActive = vstPinInfoFlagIsActive - , kVstPinUseSpeaker = vstPinInfoFlagValid - , kVstPinIsStereo = vstPinInfoFlagIsStereo -}; - -//============================================================================== -/** Structure used for VSTs - - @tags{Audio} -*/ -struct VstEvent -{ - int32 type; - int32 byteSize; // size; - int32 deltaFrames; //? sampleOffset; - int32 flags; - char content[16]; -}; - -enum VstEventTypes -{ - vstMidiEventType = 1, - vstSysExEventType = 6, - kVstMidiType = vstMidiEventType, - kVstSysExType = vstSysExEventType -}; - -/** Structure used for VSTs - - @tags{Audio} -*/ -struct VstEvents -{ - int32 numEvents; - pointer_sized_int future; - VstEvent* events[2]; -}; - -/** Structure used for VSTs - - @tags{Audio} -*/ -struct VstMidiEvent -{ - int32 type; - int32 byteSize; // size; - int32 deltaFrames; //? sampleOffset; - int32 flags; - int32 noteLength; // noteSampleLength; - int32 noteOffset; // noteSampleOffset; - char midiData[4]; - char detune; // tuning; - char noteOffVelocity; // noteVelocityOff; - char future1; - char future2; -}; - -enum VstMidiEventFlags -{ - vstMidiEventIsRealtime = 1 -}; - -/** Structure used for VSTs - - @tags{Audio} -*/ -struct VstSysExEvent -{ - int32 type; - int32 byteSize; // size; - int32 deltaFrames; //? offsetSamples; - int32 flags; - int32 dumpBytes; // sysExDumpSize; - pointer_sized_int resvd1; // future1; - char* sysexDump; // sysExDump; - pointer_sized_int resvd2; // future2; -}; -typedef VstSysExEvent VstMidiSysexEvent; - -//============================================================================== -/** Structure used for VSTs - - @tags{Audio} -*/ -struct VstTimingInformation -{ - double samplePosition; - double sampleRate; - double systemTimeNanoseconds; - double musicalPosition; - double tempoBPM; - double lastBarPosition; - double loopStartPosition; - double loopEndPosition; - int32 timeSignatureNumerator; - int32 timeSignatureDenominator; - int32 smpteOffset; - int32 smpteRate; - int32 samplesToNearestClock; - int32 flags; -}; -struct VstTimeInfo -{ - double samplePos; - double sampleRate; - double systemTimeNanoseconds; - double ppqPos; - double tempo; - double barStartPos; - double cycleStartPos; - double cycleEndPos; - int32 timeSigNumerator; - int32 timeSigDenominator; - int32 smpteOffset; - int32 smpteFrameRate; - int32 samplesToNearestClock; - int32 flags; -}; - -enum VstTimingInformationFlags -{ - vstTimingInfoFlagTransportChanged = 1, - vstTimingInfoFlagCurrentlyPlaying = 2, - vstTimingInfoFlagLoopActive = 4, - vstTimingInfoFlagCurrentlyRecording = 8, - vstTimingInfoFlagAutomationWriteModeActive = 64, - vstTimingInfoFlagAutomationReadModeActive = 128, - vstTimingInfoFlagNanosecondsValid = 256, - vstTimingInfoFlagMusicalPositionValid = 512, - vstTimingInfoFlagTempoValid = 1024, - vstTimingInfoFlagLastBarPositionValid = 2048, - vstTimingInfoFlagLoopPositionValid = 4096, - vstTimingInfoFlagTimeSignatureValid = 8192, - vstTimingInfoFlagSmpteValid = 16384, - vstTimingInfoFlagNearestClockValid = 32768 - - , kVstTransportPlaying = vstTimingInfoFlagCurrentlyPlaying - , kVstTransportCycleActive = vstTimingInfoFlagLoopActive - , kVstTransportRecording = vstTimingInfoFlagCurrentlyRecording - , kVstPpqPosValid = vstTimingInfoFlagMusicalPositionValid - , kVstTempoValid = vstTimingInfoFlagTempoValid - , kVstBarsValid = vstTimingInfoFlagLastBarPositionValid - , kVstCyclePosValid = vstTimingInfoFlagLoopPositionValid - , kVstTimeSigValid = vstTimingInfoFlagTimeSignatureValid - , kVstSmpteValid = vstTimingInfoFlagSmpteValid - , kVstClockValid = vstTimingInfoFlagNearestClockValid - - , kVstAutomationReading = vstTimingInfoFlagAutomationReadModeActive - , kVstAutomationWriting = vstTimingInfoFlagAutomationWriteModeActive - , kVstNanosValid = vstTimingInfoFlagNanosecondsValid - , kVstTransportChanged = vstTimingInfoFlagTransportChanged -}; - -//============================================================================== -enum VstSmpteRates -{ - vstSmpteRateFps24, - vstSmpteRateFps25, - vstSmpteRateFps2997, - vstSmpteRateFps30, - vstSmpteRateFps2997drop, - vstSmpteRateFps30drop, - - vstSmpteRate16mmFilm, - vstSmpteRate35mmFilm, - - vstSmpteRateFps239 = vstSmpteRate35mmFilm + 3, - vstSmpteRateFps249, - vstSmpteRateFps599, - vstSmpteRateFps60 - - , kVstSmpte239fps = vstSmpteRateFps239 - , kVstSmpte24fps = vstSmpteRateFps24 - , kVstSmpte25fps = vstSmpteRateFps25 - , kVstSmpte2997fps = vstSmpteRateFps2997 - , kVstSmpte30fps = vstSmpteRateFps30 - , kVstSmpte2997dfps = vstSmpteRateFps2997drop - , kVstSmpte30dfps = vstSmpteRateFps30drop - , kVstSmpteFilm16mm = vstSmpteRate16mmFilm - , kVstSmpteFilm35mm = vstSmpteRate35mmFilm - , kVstSmpte249fps = vstSmpteRateFps249 - , kVstSmpte599fps = vstSmpteRateFps599 - , kVstSmpte60fps = vstSmpteRateFps60 -}; - -//============================================================================== -/** Structure used for VSTs - - @tags{Audio} -*/ -struct VstIndividualSpeakerInfo -{ - float azimuthalAngle; - float elevationAngle; - float radius; - float reserved; - char label[vstMaxNameLength]; - int32 type; - char unused[28]; -}; -typedef VstIndividualSpeakerInfo VstSpeakerProperties; - -enum VstIndividualSpeakerType -{ - vstIndividualSpeakerTypeUndefined = 0x7fffffff, - vstIndividualSpeakerTypeMono = 0, - vstIndividualSpeakerTypeLeft, - vstIndividualSpeakerTypeRight, - vstIndividualSpeakerTypeCentre, - vstIndividualSpeakerTypeLFE, - vstIndividualSpeakerTypeLeftSurround, - vstIndividualSpeakerTypeRightSurround, - vstIndividualSpeakerTypeLeftCentre, - vstIndividualSpeakerTypeRightCentre, - vstIndividualSpeakerTypeSurround, - vstIndividualSpeakerTypeCentreSurround = vstIndividualSpeakerTypeSurround, - vstIndividualSpeakerTypeLeftRearSurround, - vstIndividualSpeakerTypeRightRearSurround, - vstIndividualSpeakerTypeTopMiddle, - vstIndividualSpeakerTypeTopFrontLeft, - vstIndividualSpeakerTypeTopFrontCentre, - vstIndividualSpeakerTypeTopFrontRight, - vstIndividualSpeakerTypeTopRearLeft, - vstIndividualSpeakerTypeTopRearCentre, - vstIndividualSpeakerTypeTopRearRight, - vstIndividualSpeakerTypeLFE2 - - , kSpeakerL = vstIndividualSpeakerTypeLeft - , kSpeakerR = vstIndividualSpeakerTypeRight - , kSpeakerC = vstIndividualSpeakerTypeCentre - , kSpeakerLfe = vstIndividualSpeakerTypeLFE - , kSpeakerLs = vstIndividualSpeakerTypeLeftSurround - , kSpeakerRs = vstIndividualSpeakerTypeRightSurround - , kSpeakerLc = vstIndividualSpeakerTypeLeftCentre - , kSpeakerRc = vstIndividualSpeakerTypeRightCentre - , kSpeakerS = vstIndividualSpeakerTypeSurround - , kSpeakerSl = vstIndividualSpeakerTypeLeftRearSurround - , kSpeakerSr = vstIndividualSpeakerTypeRightRearSurround - , kSpeakerTm = vstIndividualSpeakerTypeTopMiddle - , kSpeakerTfl = vstIndividualSpeakerTypeTopFrontLeft - , kSpeakerTfc = vstIndividualSpeakerTypeTopFrontCentre - , kSpeakerTfr = vstIndividualSpeakerTypeTopFrontRight - , kSpeakerTrl = vstIndividualSpeakerTypeTopRearLeft - , kSpeakerTrc = vstIndividualSpeakerTypeTopRearCentre - , kSpeakerTrr = vstIndividualSpeakerTypeTopRearRight - , kSpeakerLfe2 = vstIndividualSpeakerTypeLFE2 -}; - -/** Structure used for VSTs - - @tags{Audio} -*/ -struct VstSpeakerConfiguration -{ - int32 type; - int32 numChannels; // numberOfChannels; - VstIndividualSpeakerInfo speakers[8]; -}; -typedef VstSpeakerConfiguration VstSpeakerArrangement; - -enum VstSpeakerConfigurationType -{ - vstSpeakerConfigTypeUser = -2, - vstSpeakerConfigTypeEmpty = -1, - vstSpeakerConfigTypeMono = 0, - vstSpeakerConfigTypeLR, - vstSpeakerConfigTypeLsRs, - vstSpeakerConfigTypeLcRc, - vstSpeakerConfigTypeSlSr, - vstSpeakerConfigTypeCLfe, - vstSpeakerConfigTypeLRC, - vstSpeakerConfigTypeLRS, - vstSpeakerConfigTypeLRCLfe, - vstSpeakerConfigTypeLRLfeS, - vstSpeakerConfigTypeLRCS, - vstSpeakerConfigTypeLRLsRs, - vstSpeakerConfigTypeLRCLfeS, - vstSpeakerConfigTypeLRLfeLsRs, - vstSpeakerConfigTypeLRCLsRs, - vstSpeakerConfigTypeLRCLfeLsRs, - vstSpeakerConfigTypeLRCLsRsCs, - vstSpeakerConfigTypeLRLsRsSlSr, - vstSpeakerConfigTypeLRCLfeLsRsCs, - vstSpeakerConfigTypeLRLfeLsRsSlSr, - vstSpeakerConfigTypeLRCLsRsLcRc, - vstSpeakerConfigTypeLRCLsRsSlSr, - vstSpeakerConfigTypeLRCLfeLsRsLcRc, - vstSpeakerConfigTypeLRCLfeLsRsSlSr, - vstSpeakerConfigTypeLRCLsRsLcRcCs, - vstSpeakerConfigTypeLRCLsRsCsSlSr, - vstSpeakerConfigTypeLRCLfeLsRsLcRcCs, - vstSpeakerConfigTypeLRCLfeLsRsCsSlSr, - vstSpeakerConfigTypeLRCLfeLsRsTflTfcTfrTrlTrrLfe2 - - , kSpeakerArrMono = vstSpeakerConfigTypeMono - , kSpeakerArrStereo = vstSpeakerConfigTypeLR - , kSpeakerArrStereoCLfe = vstSpeakerConfigTypeCLfe - , kSpeakerArrStereoCenter = vstSpeakerConfigTypeLcRc - , kSpeakerArrStereoSide = vstSpeakerConfigTypeSlSr - , kSpeakerArrStereoSurround = vstSpeakerConfigTypeLsRs - , kSpeakerArr30Cine = vstSpeakerConfigTypeLRC - , kSpeakerArr31Cine = vstSpeakerConfigTypeLRCLfe - , kSpeakerArr40Cine = vstSpeakerConfigTypeLRCS - , kSpeakerArr41Cine = vstSpeakerConfigTypeLRCLfeS - , kSpeakerArr60Cine = vstSpeakerConfigTypeLRCLsRsCs - , kSpeakerArr61Cine = vstSpeakerConfigTypeLRCLfeLsRsCs - , kSpeakerArr70Cine = vstSpeakerConfigTypeLRCLsRsLcRc // create7point0SDDS - , kSpeakerArr71Cine = vstSpeakerConfigTypeLRCLfeLsRsLcRc - , kSpeakerArr80Cine = vstSpeakerConfigTypeLRCLsRsLcRcCs - , kSpeakerArr81Cine = vstSpeakerConfigTypeLRCLfeLsRsLcRcCs - , kSpeakerArr30Music = vstSpeakerConfigTypeLRS - , kSpeakerArr31Music = vstSpeakerConfigTypeLRLfeS - , kSpeakerArr40Music = vstSpeakerConfigTypeLRLsRs - , kSpeakerArr41Music = vstSpeakerConfigTypeLRLfeLsRs - , kSpeakerArr60Music = vstSpeakerConfigTypeLRLsRsSlSr - , kSpeakerArr61Music = vstSpeakerConfigTypeLRLfeLsRsSlSr - , kSpeakerArr70Music = vstSpeakerConfigTypeLRCLsRsSlSr // create7point0 - , kSpeakerArr71Music = vstSpeakerConfigTypeLRCLfeLsRsSlSr - , kSpeakerArr80Music = vstSpeakerConfigTypeLRCLsRsCsSlSr - , kSpeakerArr81Music = vstSpeakerConfigTypeLRCLfeLsRsCsSlSr - , kSpeakerArr50 = vstSpeakerConfigTypeLRCLsRs - , kSpeakerArr51 = vstSpeakerConfigTypeLRCLfeLsRs - , kSpeakerArr102 = vstSpeakerConfigTypeLRCLfeLsRsTflTfcTfrTrlTrrLfe2 - , kSpeakerArrEmpty = vstSpeakerConfigTypeEmpty - , kSpeakerArrUserDefined = vstSpeakerConfigTypeUser -}; - -#if JUCE_BIG_ENDIAN - #define JUCE_MULTICHAR_CONSTANT(a, b, c, d) (a | (((uint32) b) << 8) | (((uint32) c) << 16) | (((uint32) d) << 24)) -#else - #define JUCE_MULTICHAR_CONSTANT(a, b, c, d) (d | (((uint32) c) << 8) | (((uint32) b) << 16) | (((uint32) a) << 24)) -#endif - -enum PresonusExtensionConstants -{ - presonusVendorID = JUCE_MULTICHAR_CONSTANT ('P', 'r', 'e', 'S'), - presonusSetContentScaleFactor = JUCE_MULTICHAR_CONSTANT ('A', 'e', 'C', 's') -}; - -//============================================================================== -/** Structure used for VSTs - - @tags{Audio} -*/ -struct vst2FxBank -{ - int32 magic1; - int32 size; - int32 magic2; - int32 version1; - int32 fxID; - int32 version2; - int32 elements; - int32 current; - char shouldBeZero[124]; - int32 chunkSize; - char chunk[1]; -}; - -#if JUCE_MSVC - #pragma pack(pop) -#elif JUCE_MAC || JUCE_IOS - #pragma options align=reset -#else - #pragma pack(pop) -#endif Copied: juce/repos/community-staging-x86_64/juce_VSTInterface.h (from rev 1025785, juce/trunk/juce_VSTInterface.h) =================================================================== --- juce_VSTInterface.h (rev 0) +++ juce_VSTInterface.h 2021-09-27 19:35:15 UTC (rev 1025786) @@ -0,0 +1,814 @@ +/* + ============================================================================== + + This file is part of the JUCE library. + Copyright (c) 2017 - ROLI Ltd. + + JUCE is an open source library subject to commercial or open-source + licensing. + + By using JUCE, you agree to the terms of both the JUCE 5 End-User License + Agreement and JUCE 5 Privacy Policy (both updated and effective as of the + 27th April 2017). + + End User License Agreement: www.juce.com/juce-5-licence + Privacy Policy: www.juce.com/juce-5-privacy-policy + + Or: You may also use this code under the terms of the GPL v3 (see + www.gnu.org/licenses). + + JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER + EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE + DISCLAIMED. + + ============================================================================== +*/ + +/* + Copyright © 2019 IOhannes m zmölnig + + Provide additional structs & enum-aliases, to allow compilation with JUCE-5.4.1 + + The names of the struct-members and enum-aliases have been derived by comparing + juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp of + both JUCE-5.3.2 and JUCE-5.4.1 + */ + +#define JUCE_VSTINTERFACE_H_INCLUDED + +using namespace juce; + +#if JUCE_MSVC + #define VSTINTERFACECALL __cdecl + #pragma pack(push) + #pragma pack(8) +#elif JUCE_MAC || JUCE_IOS + #define VSTINTERFACECALL + #if JUCE_64BIT + #pragma options align=power + #else + #pragma options align=mac68k + #endif +#else + #define VSTINTERFACECALL + #pragma pack(push, 8) +#endif + +#define VSTCALLBACK VSTINTERFACECALL + +const int32 juceVstInterfaceVersion = 2400; +#define kVstVersion 2400 +const int32 juceVstInterfaceIdentifier = 0x56737450; // The "magic" identifier in the SDK is 'VstP'. + +//============================================================================== +/** Structure used for VSTs + + @tags{Audio} +*/ +struct VstEffectInterface +{ + int32 interfaceIdentifier; + pointer_sized_int (VSTINTERFACECALL* dispatchFunction) (VstEffectInterface*, int32 op, int32 index, pointer_sized_int value, void* ptr, float opt); + void (VSTINTERFACECALL* processAudioFunction) (VstEffectInterface*, float** inputs, float** outputs, int32 numSamples); + void (VSTINTERFACECALL* setParameterValueFunction) (VstEffectInterface*, int32 parameterIndex, float value); + float (VSTINTERFACECALL* getParameterValueFunction) (VstEffectInterface*, int32 parameterIndex); + int32 numPrograms; + int32 numParameters; + int32 numInputChannels; + int32 numOutputChannels; + int32 flags; + pointer_sized_int hostSpace1; + pointer_sized_int hostSpace2; + int32 latency; + int32 deprecated1; + int32 deprecated2; + float deprecated3; + void* effectPointer; + void* userPointer; + int32 plugInIdentifier; + int32 plugInVersion; + void (VSTINTERFACECALL* processAudioInplaceFunction) (VstEffectInterface*, float** inputs, float** outputs, int32 numSamples); + void (VSTINTERFACECALL* processDoubleAudioInplaceFunction) (VstEffectInterface*, double** inputs, double** outputs, int32 numSamples); + char emptySpace[56]; +}; + +struct AEffect; +typedef pointer_sized_int (VSTINTERFACECALL*AEffectDispatcherProc)(AEffect*, int32 op, int32 index, pointer_sized_int value, void* ptr, float opt); +typedef void (VSTINTERFACECALL*AEffectProcessProc)(AEffect*, float** inputs, float** outputs, int32 numSamples); +typedef void (VSTINTERFACECALL*AEffectProcessDoubleProc)(AEffect*, double** inputs, double** outputs, int32 numSamples); +typedef float (VSTINTERFACECALL*AEffectGetParameterProc)(AEffect*, int32 parameterIndex); +typedef void (VSTINTERFACECALL*AEffectSetParameterProc)(AEffect*, int32 parameterIndex, float value); + +struct AEffect +{ + int32 magic; + AEffectDispatcherProc dispatcher; + AEffectProcessProc process; + AEffectSetParameterProc setParameter; + AEffectGetParameterProc getParameter; + int32 numPrograms; + int32 numParams; + int32 numInputs; + int32 numOutputs; + int32 flags; + pointer_sized_int hostSpace1; + pointer_sized_int hostSpace2; + int32 initialDelay; + int32 deprecated1; + int32 deprecated2; + float deprecated3; + void* object; + void* userPointer; + int32 uniqueID; + int32 version; + AEffectProcessProc processReplacing; + AEffectProcessDoubleProc processDoubleReplacing; + char emptySpace[56]; +}; + + +typedef pointer_sized_int (VSTINTERFACECALL* VstHostCallback) (VstEffectInterface*, int32 op, int32 index, pointer_sized_int value, void* ptr, float opt); +typedef pointer_sized_int (VSTINTERFACECALL* audioMasterCallback) (AEffect*, int32 op, int32 index, pointer_sized_int value, void* ptr, float opt); + +enum VstEffectInterfaceFlags +{ + vstEffectFlagHasEditor = 1, + vstEffectFlagInplaceAudio = 16, + vstEffectFlagDataInChunks = 32, + vstEffectFlagIsSynth = 256, + vstEffectFlagInplaceDoubleAudio = 4096 + + , effFlagsHasEditor = vstEffectFlagHasEditor + , effFlagsNoSoundInStop = 0 // FIXXME + , effFlagsProgramChunks = vstEffectFlagDataInChunks + + , effFlagsCanReplacing = vstEffectFlagInplaceAudio + , effFlagsIsSynth = vstEffectFlagIsSynth + , effFlagsCanDoubleReplacing = vstEffectFlagInplaceDoubleAudio +}; + +//============================================================================== +enum VstHostToPlugInOpcodes +{ + plugInOpcodeOpen, + plugInOpcodeClose, + plugInOpcodeSetCurrentProgram, + plugInOpcodeGetCurrentProgram, + plugInOpcodeSetCurrentProgramName, + plugInOpcodeGetCurrentProgramName, + plugInOpcodeGetParameterLabel, + plugInOpcodeGetParameterText, + plugInOpcodeGetParameterName, + plugInOpcodeSetSampleRate = plugInOpcodeGetParameterName + 2, + plugInOpcodeSetBlockSize, + plugInOpcodeResumeSuspend, + plugInOpcodeGetEditorBounds, + plugInOpcodeOpenEditor, + plugInOpcodeCloseEditor, + plugInOpcodeDrawEditor, + plugInOpcodeGetMouse, + plugInOpcodeEditorIdle = plugInOpcodeGetMouse + 2, + plugInOpcodeeffEditorTop, + plugInOpcodeSleepEditor, + plugInOpcodeIdentify, + plugInOpcodeGetData, + plugInOpcodeSetData, + plugInOpcodePreAudioProcessingEvents, + plugInOpcodeIsParameterAutomatable, + plugInOpcodeParameterValueForText, + plugInOpcodeGetProgramName = plugInOpcodeParameterValueForText + 2, + plugInOpcodeConnectInput = plugInOpcodeGetProgramName + 2, + plugInOpcodeConnectOutput, + plugInOpcodeGetInputPinProperties, + plugInOpcodeGetOutputPinProperties, + plugInOpcodeGetPlugInCategory, + plugInOpcodeSetSpeakerConfiguration = plugInOpcodeGetPlugInCategory + 7, + plugInOpcodeSetBypass = plugInOpcodeSetSpeakerConfiguration + 2, + plugInOpcodeGetPlugInName, + plugInOpcodeGetManufacturerName = plugInOpcodeGetPlugInName + 2, + plugInOpcodeGetManufacturerProductName, + plugInOpcodeGetManufacturerVersion, + plugInOpcodeManufacturerSpecific, + plugInOpcodeCanPlugInDo, + plugInOpcodeGetTailSize, + plugInOpcodeIdle, + plugInOpcodeKeyboardFocusRequired = plugInOpcodeIdle + 4, + plugInOpcodeGetVstInterfaceVersion, + plugInOpcodeGetCurrentMidiProgram = plugInOpcodeGetVstInterfaceVersion + 5, + plugInOpcodeGetSpeakerArrangement = plugInOpcodeGetCurrentMidiProgram + 6, + plugInOpcodeNextPlugInUniqueID, + plugInOpcodeStartProcess, + plugInOpcodeStopProcess, + plugInOpcodeSetNumberOfSamplesToProcess, + plugInOpcodeSetSampleFloatType = plugInOpcodeSetNumberOfSamplesToProcess + 4, + pluginOpcodeGetNumMidiInputChannels, + pluginOpcodeGetNumMidiOutputChannels, + plugInOpcodeMaximum = pluginOpcodeGetNumMidiOutputChannels + + , effOpen = plugInOpcodeOpen + , effClose = plugInOpcodeClose + , effSetProgram = plugInOpcodeSetCurrentProgram + , effGetProgram = plugInOpcodeGetCurrentProgram + , effSetProgramName = plugInOpcodeSetCurrentProgramName + , effGetProgramName = plugInOpcodeGetCurrentProgramName + , effGetParamLabel = plugInOpcodeGetParameterLabel + , effGetParamDisplay = plugInOpcodeGetParameterText + , effGetParamName = plugInOpcodeGetParameterName + , effSetSampleRate = plugInOpcodeSetSampleRate + , effSetBlockSize = plugInOpcodeSetBlockSize + , effMainsChanged = plugInOpcodeResumeSuspend + , effEditGetRect = plugInOpcodeGetEditorBounds + , effEditOpen = plugInOpcodeOpenEditor + , effEditClose = plugInOpcodeCloseEditor + , effIdentify = plugInOpcodeIdentify + , effGetChunk = plugInOpcodeGetData + , effSetChunk = plugInOpcodeSetData + , effProcessEvents = plugInOpcodePreAudioProcessingEvents + , effCanBeAutomated = plugInOpcodeIsParameterAutomatable + , effString2Parameter = plugInOpcodeParameterValueForText + , effGetProgramNameIndexed = plugInOpcodeGetProgramName + , effGetInputProperties = plugInOpcodeGetInputPinProperties + , effGetOutputProperties = plugInOpcodeGetOutputPinProperties + , effGetPlugCategory = plugInOpcodeGetPlugInCategory + , effSetSpeakerArrangement = plugInOpcodeSetSpeakerConfiguration + , effSetBypass = plugInOpcodeSetBypass + , effGetEffectName = plugInOpcodeGetPlugInName + , effGetProductString = plugInOpcodeGetManufacturerProductName + , effGetVendorString = plugInOpcodeGetManufacturerName + , effGetVendorVersion = plugInOpcodeGetManufacturerVersion + , effVendorSpecific = plugInOpcodeManufacturerSpecific + , effCanDo = plugInOpcodeCanPlugInDo + , effGetTailSize = plugInOpcodeGetTailSize + , effKeysRequired = plugInOpcodeKeyboardFocusRequired + , effGetVstVersion = plugInOpcodeGetVstInterfaceVersion + , effGetCurrentMidiProgram = plugInOpcodeGetCurrentMidiProgram + , effGetSpeakerArrangement = plugInOpcodeGetSpeakerArrangement + , effSetTotalSampleToProcess = plugInOpcodeSetNumberOfSamplesToProcess + , effSetProcessPrecision = plugInOpcodeSetSampleFloatType + , effGetNumMidiInputChannels = pluginOpcodeGetNumMidiInputChannels + , effGetNumMidiOutputChannels = pluginOpcodeGetNumMidiOutputChannels + + , effConnectInput = plugInOpcodeConnectInput + , effConnectOutput = plugInOpcodeConnectOutput + , effEditIdle = plugInOpcodeEditorIdle + , effIdle = plugInOpcodeIdle + , effShellGetNextPlugin = plugInOpcodeNextPlugInUniqueID + , effStartProcess = plugInOpcodeStartProcess + , effStopProcess = plugInOpcodeStopProcess +}; + + +enum VstPlugInToHostOpcodes +{ + hostOpcodeParameterChanged, + hostOpcodeVstVersion, + hostOpcodeCurrentId, + hostOpcodeIdle, + hostOpcodePinConnected, + hostOpcodePlugInWantsMidi = hostOpcodePinConnected + 2, + hostOpcodeGetTimingInfo, + hostOpcodePreAudioProcessingEvents, + hostOpcodeSetTime, + hostOpcodeTempoAt, + hostOpcodeGetNumberOfAutomatableParameters, + hostOpcodeGetParameterInterval, + hostOpcodeIOModified, + hostOpcodeNeedsIdle, + hostOpcodeWindowSize, + hostOpcodeGetSampleRate, + hostOpcodeGetBlockSize, + hostOpcodeGetInputLatency, + hostOpcodeGetOutputLatency, + hostOpcodeGetPreviousPlugIn, + hostOpcodeGetNextPlugIn, + hostOpcodeWillReplace, + hostOpcodeGetCurrentAudioProcessingLevel, + hostOpcodeGetAutomationState, + hostOpcodeOfflineStart, + hostOpcodeOfflineReadSource, + hostOpcodeOfflineWrite, + hostOpcodeOfflineGetCurrentPass, + hostOpcodeOfflineGetCurrentMetaPass, + hostOpcodeSetOutputSampleRate, + hostOpcodeGetOutputSpeakerConfiguration, + hostOpcodeGetManufacturerName, + hostOpcodeGetProductName, + hostOpcodeGetManufacturerVersion, + hostOpcodeManufacturerSpecific, + hostOpcodeSetIcon, + hostOpcodeCanHostDo, + hostOpcodeGetLanguage, + hostOpcodeOpenEditorWindow, + hostOpcodeCloseEditorWindow, + hostOpcodeGetDirectory, + hostOpcodeUpdateView, + hostOpcodeParameterChangeGestureBegin, + hostOpcodeParameterChangeGestureEnd + + , audioMasterProcessEvents = hostOpcodePreAudioProcessingEvents + , audioMasterWantMidi = hostOpcodePlugInWantsMidi + , audioMasterVendorSpecific = hostOpcodeManufacturerSpecific + , audioMasterAutomate = hostOpcodeParameterChanged + , audioMasterBeginEdit = hostOpcodeParameterChangeGestureBegin + , audioMasterEndEdit = hostOpcodeParameterChangeGestureEnd + , audioMasterUpdateDisplay = hostOpcodeUpdateView + , audioMasterIOChanged = hostOpcodeIOModified + , audioMasterCanDo = hostOpcodeCanHostDo + , audioMasterGetCurrentProcessLevel = hostOpcodeGetCurrentAudioProcessingLevel + , audioMasterGetTime = hostOpcodeGetTimingInfo + , audioMasterSizeWindow = hostOpcodeWindowSize + , audioMasterVersion = hostOpcodeVstVersion + + , audioMasterCloseWindow = hostOpcodeCloseEditorWindow + , audioMasterCurrentId = hostOpcodeCurrentId + , audioMasterGetAutomationState = hostOpcodeGetAutomationState + , audioMasterGetBlockSize = hostOpcodeGetBlockSize + , audioMasterGetDirectory = hostOpcodeGetDirectory + , audioMasterGetInputLatency = hostOpcodeGetInputLatency + , audioMasterGetLanguage = hostOpcodeGetLanguage + , audioMasterGetNextPlug = hostOpcodeGetNextPlugIn + , audioMasterGetNumAutomatableParameters = hostOpcodeGetNumberOfAutomatableParameters + , audioMasterGetOutputLatency = hostOpcodeGetOutputLatency + , audioMasterGetOutputSpeakerArrangement = hostOpcodeGetOutputSpeakerConfiguration + , audioMasterGetParameterQuantization = hostOpcodeGetParameterInterval + , audioMasterGetPreviousPlug = hostOpcodeGetPreviousPlugIn + , audioMasterGetProductString = hostOpcodeGetProductName + , audioMasterGetSampleRate = hostOpcodeGetSampleRate + , audioMasterGetVendorString = hostOpcodeGetManufacturerName + , audioMasterGetVendorVersion = hostOpcodeGetManufacturerVersion + , audioMasterIdle = hostOpcodeIdle + , audioMasterNeedIdle = hostOpcodeNeedsIdle + , audioMasterOfflineGetCurrentMetaPass = hostOpcodeOfflineGetCurrentMetaPass + , audioMasterOfflineGetCurrentPass = hostOpcodeOfflineGetCurrentPass + , audioMasterOfflineRead = hostOpcodeOfflineReadSource + , audioMasterOfflineStart = hostOpcodeOfflineStart + , audioMasterOfflineWrite = hostOpcodeOfflineWrite + , audioMasterOpenWindow = hostOpcodeOpenEditorWindow + , audioMasterPinConnected = hostOpcodePinConnected + , audioMasterSetIcon = hostOpcodeSetIcon + , audioMasterSetOutputSampleRate = hostOpcodeSetOutputSampleRate + , audioMasterSetTime = hostOpcodeSetTime + , audioMasterTempoAt = hostOpcodeTempoAt + , audioMasterWillReplaceOrAccumulate = hostOpcodeWillReplace + +}; +typedef enum VstPlugInToHostOpcodes AudioMasterOpcodesX; + +//============================================================================== +enum VstProcessingSampleType +{ + vstProcessingSampleTypeFloat, + vstProcessingSampleTypeDouble + + , kVstProcessPrecision32 = vstProcessingSampleTypeFloat + , kVstProcessPrecision64 = vstProcessingSampleTypeDouble +}; + +//============================================================================== +// These names must be identical to the Steinberg SDK so JUCE users can set +// exactly what they want. +typedef enum VstPlugInCategory +{ + kPlugCategUnknown, + kPlugCategEffect, + kPlugCategSynth, + kPlugCategAnalysis, + kPlugCategMastering, + kPlugCategSpacializer, + kPlugCategRoomFx, + kPlugSurroundFx, + kPlugCategRestoration, + kPlugCategOfflineProcess, + kPlugCategShell, + kPlugCategGenerator +} VstPlugCategory; + +//============================================================================== +/** Structure used for VSTs + + @tags{Audio} +*/ +struct VstEditorBounds +{ + int16 upper; + int16 leftmost; + int16 lower; + int16 rightmost; +}; +struct ERect { + int16 top; + int16 left; + int16 bottom; + int16 right; +}; + +//============================================================================== +enum VstMaxStringLengths +{ + vstMaxNameLength = 64, + vstMaxParameterOrPinLabelLength = 64, + vstMaxParameterOrPinShortLabelLength = 8, + vstMaxCategoryLength = 24, + vstMaxManufacturerStringLength = 64, + vstMaxPlugInNameStringLength = 64 + + , kVstMaxLabelLen = vstMaxParameterOrPinLabelLength + , kVstMaxShortLabelLen = vstMaxParameterOrPinShortLabelLength + , kVstMaxProductStrLen = vstMaxPlugInNameStringLength + , kVstMaxVendorStrLen = vstMaxManufacturerStringLength +}; + +//============================================================================== +/** Structure used for VSTs + + @tags{Audio} +*/ +struct VstPinInfo +{ + char text[vstMaxParameterOrPinLabelLength]; + int32 flags; + int32 configurationType; + char shortText[vstMaxParameterOrPinShortLabelLength]; + char unused[48]; +}; +struct VstPinProperties +{ + char label[vstMaxParameterOrPinLabelLength]; + int32 flags; + int32 arrangementType; + char shortLabel[vstMaxParameterOrPinShortLabelLength]; + char unused[48]; +}; + +enum VstPinInfoFlags +{ + vstPinInfoFlagIsActive = 1, + vstPinInfoFlagIsStereo = 2, + vstPinInfoFlagValid = 4 + + , kVstPinIsActive = vstPinInfoFlagIsActive + , kVstPinUseSpeaker = vstPinInfoFlagValid + , kVstPinIsStereo = vstPinInfoFlagIsStereo +}; + +//============================================================================== +/** Structure used for VSTs + + @tags{Audio} +*/ +struct VstEvent +{ + int32 type; + int32 byteSize; // size; + int32 deltaFrames; //? sampleOffset; + int32 flags; + char content[16]; +}; + +enum VstEventTypes +{ + vstMidiEventType = 1, + vstSysExEventType = 6, + kVstMidiType = vstMidiEventType, + kVstSysExType = vstSysExEventType +}; + +/** Structure used for VSTs + + @tags{Audio} +*/ +struct VstEvents +{ + int32 numEvents; + pointer_sized_int future; + VstEvent* events[2]; +}; + +/** Structure used for VSTs + + @tags{Audio} +*/ +struct VstMidiEvent +{ + int32 type; + int32 byteSize; // size; + int32 deltaFrames; //? sampleOffset; + int32 flags; + int32 noteLength; // noteSampleLength; + int32 noteOffset; // noteSampleOffset; + char midiData[4]; + char detune; // tuning; + char noteOffVelocity; // noteVelocityOff; + char future1; + char future2; +}; + +enum VstMidiEventFlags +{ + vstMidiEventIsRealtime = 1 +}; + +/** Structure used for VSTs + + @tags{Audio} +*/ +struct VstSysExEvent +{ + int32 type; + int32 byteSize; // size; + int32 deltaFrames; //? offsetSamples; + int32 flags; + int32 dumpBytes; // sysExDumpSize; + pointer_sized_int resvd1; // future1; + char* sysexDump; // sysExDump; + pointer_sized_int resvd2; // future2; +}; +typedef VstSysExEvent VstMidiSysexEvent; + +//============================================================================== +/** Structure used for VSTs + + @tags{Audio} +*/ +struct VstTimingInformation +{ + double samplePosition; + double sampleRate; + double systemTimeNanoseconds; + double musicalPosition; + double tempoBPM; + double lastBarPosition; + double loopStartPosition; + double loopEndPosition; + int32 timeSignatureNumerator; + int32 timeSignatureDenominator; + int32 smpteOffset; + int32 smpteRate; + int32 samplesToNearestClock; + int32 flags; +}; +struct VstTimeInfo +{ + double samplePos; + double sampleRate; + double systemTimeNanoseconds; + double ppqPos; + double tempo; + double barStartPos; + double cycleStartPos; + double cycleEndPos; + int32 timeSigNumerator; + int32 timeSigDenominator; + int32 smpteOffset; + int32 smpteFrameRate; + int32 samplesToNearestClock; + int32 flags; +}; + +enum VstTimingInformationFlags +{ + vstTimingInfoFlagTransportChanged = 1, + vstTimingInfoFlagCurrentlyPlaying = 2, + vstTimingInfoFlagLoopActive = 4, + vstTimingInfoFlagCurrentlyRecording = 8, + vstTimingInfoFlagAutomationWriteModeActive = 64, + vstTimingInfoFlagAutomationReadModeActive = 128, + vstTimingInfoFlagNanosecondsValid = 256, + vstTimingInfoFlagMusicalPositionValid = 512, + vstTimingInfoFlagTempoValid = 1024, + vstTimingInfoFlagLastBarPositionValid = 2048, + vstTimingInfoFlagLoopPositionValid = 4096, + vstTimingInfoFlagTimeSignatureValid = 8192, + vstTimingInfoFlagSmpteValid = 16384, + vstTimingInfoFlagNearestClockValid = 32768 + + , kVstTransportPlaying = vstTimingInfoFlagCurrentlyPlaying + , kVstTransportCycleActive = vstTimingInfoFlagLoopActive + , kVstTransportRecording = vstTimingInfoFlagCurrentlyRecording + , kVstPpqPosValid = vstTimingInfoFlagMusicalPositionValid + , kVstTempoValid = vstTimingInfoFlagTempoValid + , kVstBarsValid = vstTimingInfoFlagLastBarPositionValid + , kVstCyclePosValid = vstTimingInfoFlagLoopPositionValid + , kVstTimeSigValid = vstTimingInfoFlagTimeSignatureValid + , kVstSmpteValid = vstTimingInfoFlagSmpteValid + , kVstClockValid = vstTimingInfoFlagNearestClockValid + + , kVstAutomationReading = vstTimingInfoFlagAutomationReadModeActive + , kVstAutomationWriting = vstTimingInfoFlagAutomationWriteModeActive + , kVstNanosValid = vstTimingInfoFlagNanosecondsValid + , kVstTransportChanged = vstTimingInfoFlagTransportChanged +}; + +//============================================================================== +enum VstSmpteRates +{ + vstSmpteRateFps24, + vstSmpteRateFps25, + vstSmpteRateFps2997, + vstSmpteRateFps30, + vstSmpteRateFps2997drop, + vstSmpteRateFps30drop, + + vstSmpteRate16mmFilm, + vstSmpteRate35mmFilm, + + vstSmpteRateFps239 = vstSmpteRate35mmFilm + 3, + vstSmpteRateFps249, + vstSmpteRateFps599, + vstSmpteRateFps60 + + , kVstSmpte239fps = vstSmpteRateFps239 + , kVstSmpte24fps = vstSmpteRateFps24 + , kVstSmpte25fps = vstSmpteRateFps25 + , kVstSmpte2997fps = vstSmpteRateFps2997 + , kVstSmpte30fps = vstSmpteRateFps30 + , kVstSmpte2997dfps = vstSmpteRateFps2997drop + , kVstSmpte30dfps = vstSmpteRateFps30drop + , kVstSmpteFilm16mm = vstSmpteRate16mmFilm + , kVstSmpteFilm35mm = vstSmpteRate35mmFilm + , kVstSmpte249fps = vstSmpteRateFps249 + , kVstSmpte599fps = vstSmpteRateFps599 + , kVstSmpte60fps = vstSmpteRateFps60 +}; + +//============================================================================== +/** Structure used for VSTs + + @tags{Audio} +*/ +struct VstIndividualSpeakerInfo +{ + float azimuthalAngle; + float elevationAngle; + float radius; + float reserved; + char label[vstMaxNameLength]; + int32 type; + char unused[28]; +}; +typedef VstIndividualSpeakerInfo VstSpeakerProperties; + +enum VstIndividualSpeakerType +{ + vstIndividualSpeakerTypeUndefined = 0x7fffffff, + vstIndividualSpeakerTypeMono = 0, + vstIndividualSpeakerTypeLeft, + vstIndividualSpeakerTypeRight, + vstIndividualSpeakerTypeCentre, + vstIndividualSpeakerTypeLFE, + vstIndividualSpeakerTypeLeftSurround, + vstIndividualSpeakerTypeRightSurround, + vstIndividualSpeakerTypeLeftCentre, + vstIndividualSpeakerTypeRightCentre, + vstIndividualSpeakerTypeSurround, + vstIndividualSpeakerTypeCentreSurround = vstIndividualSpeakerTypeSurround, + vstIndividualSpeakerTypeLeftRearSurround, + vstIndividualSpeakerTypeRightRearSurround, + vstIndividualSpeakerTypeTopMiddle, + vstIndividualSpeakerTypeTopFrontLeft, + vstIndividualSpeakerTypeTopFrontCentre, + vstIndividualSpeakerTypeTopFrontRight, + vstIndividualSpeakerTypeTopRearLeft, + vstIndividualSpeakerTypeTopRearCentre, + vstIndividualSpeakerTypeTopRearRight, + vstIndividualSpeakerTypeLFE2 + + , kSpeakerL = vstIndividualSpeakerTypeLeft + , kSpeakerR = vstIndividualSpeakerTypeRight + , kSpeakerC = vstIndividualSpeakerTypeCentre + , kSpeakerLfe = vstIndividualSpeakerTypeLFE + , kSpeakerLs = vstIndividualSpeakerTypeLeftSurround + , kSpeakerRs = vstIndividualSpeakerTypeRightSurround + , kSpeakerLc = vstIndividualSpeakerTypeLeftCentre + , kSpeakerRc = vstIndividualSpeakerTypeRightCentre + , kSpeakerS = vstIndividualSpeakerTypeSurround + , kSpeakerSl = vstIndividualSpeakerTypeLeftRearSurround + , kSpeakerSr = vstIndividualSpeakerTypeRightRearSurround + , kSpeakerTm = vstIndividualSpeakerTypeTopMiddle + , kSpeakerTfl = vstIndividualSpeakerTypeTopFrontLeft + , kSpeakerTfc = vstIndividualSpeakerTypeTopFrontCentre + , kSpeakerTfr = vstIndividualSpeakerTypeTopFrontRight + , kSpeakerTrl = vstIndividualSpeakerTypeTopRearLeft + , kSpeakerTrc = vstIndividualSpeakerTypeTopRearCentre + , kSpeakerTrr = vstIndividualSpeakerTypeTopRearRight + , kSpeakerLfe2 = vstIndividualSpeakerTypeLFE2 +}; + +/** Structure used for VSTs + + @tags{Audio} +*/ +struct VstSpeakerConfiguration +{ + int32 type; + int32 numChannels; // numberOfChannels; + VstIndividualSpeakerInfo speakers[8]; +}; +typedef VstSpeakerConfiguration VstSpeakerArrangement; + +enum VstSpeakerConfigurationType +{ + vstSpeakerConfigTypeUser = -2, + vstSpeakerConfigTypeEmpty = -1, + vstSpeakerConfigTypeMono = 0, + vstSpeakerConfigTypeLR, + vstSpeakerConfigTypeLsRs, + vstSpeakerConfigTypeLcRc, + vstSpeakerConfigTypeSlSr, + vstSpeakerConfigTypeCLfe, + vstSpeakerConfigTypeLRC, + vstSpeakerConfigTypeLRS, + vstSpeakerConfigTypeLRCLfe, + vstSpeakerConfigTypeLRLfeS, + vstSpeakerConfigTypeLRCS, + vstSpeakerConfigTypeLRLsRs, + vstSpeakerConfigTypeLRCLfeS, + vstSpeakerConfigTypeLRLfeLsRs, + vstSpeakerConfigTypeLRCLsRs, + vstSpeakerConfigTypeLRCLfeLsRs, + vstSpeakerConfigTypeLRCLsRsCs, + vstSpeakerConfigTypeLRLsRsSlSr, + vstSpeakerConfigTypeLRCLfeLsRsCs, + vstSpeakerConfigTypeLRLfeLsRsSlSr, + vstSpeakerConfigTypeLRCLsRsLcRc, + vstSpeakerConfigTypeLRCLsRsSlSr, + vstSpeakerConfigTypeLRCLfeLsRsLcRc, + vstSpeakerConfigTypeLRCLfeLsRsSlSr, + vstSpeakerConfigTypeLRCLsRsLcRcCs, + vstSpeakerConfigTypeLRCLsRsCsSlSr, + vstSpeakerConfigTypeLRCLfeLsRsLcRcCs, + vstSpeakerConfigTypeLRCLfeLsRsCsSlSr, + vstSpeakerConfigTypeLRCLfeLsRsTflTfcTfrTrlTrrLfe2 + + , kSpeakerArrMono = vstSpeakerConfigTypeMono + , kSpeakerArrStereo = vstSpeakerConfigTypeLR + , kSpeakerArrStereoCLfe = vstSpeakerConfigTypeCLfe + , kSpeakerArrStereoCenter = vstSpeakerConfigTypeLcRc + , kSpeakerArrStereoSide = vstSpeakerConfigTypeSlSr + , kSpeakerArrStereoSurround = vstSpeakerConfigTypeLsRs + , kSpeakerArr30Cine = vstSpeakerConfigTypeLRC + , kSpeakerArr31Cine = vstSpeakerConfigTypeLRCLfe + , kSpeakerArr40Cine = vstSpeakerConfigTypeLRCS + , kSpeakerArr41Cine = vstSpeakerConfigTypeLRCLfeS + , kSpeakerArr60Cine = vstSpeakerConfigTypeLRCLsRsCs + , kSpeakerArr61Cine = vstSpeakerConfigTypeLRCLfeLsRsCs + , kSpeakerArr70Cine = vstSpeakerConfigTypeLRCLsRsLcRc // create7point0SDDS + , kSpeakerArr71Cine = vstSpeakerConfigTypeLRCLfeLsRsLcRc + , kSpeakerArr80Cine = vstSpeakerConfigTypeLRCLsRsLcRcCs + , kSpeakerArr81Cine = vstSpeakerConfigTypeLRCLfeLsRsLcRcCs + , kSpeakerArr30Music = vstSpeakerConfigTypeLRS + , kSpeakerArr31Music = vstSpeakerConfigTypeLRLfeS + , kSpeakerArr40Music = vstSpeakerConfigTypeLRLsRs + , kSpeakerArr41Music = vstSpeakerConfigTypeLRLfeLsRs + , kSpeakerArr60Music = vstSpeakerConfigTypeLRLsRsSlSr + , kSpeakerArr61Music = vstSpeakerConfigTypeLRLfeLsRsSlSr + , kSpeakerArr70Music = vstSpeakerConfigTypeLRCLsRsSlSr // create7point0 + , kSpeakerArr71Music = vstSpeakerConfigTypeLRCLfeLsRsSlSr + , kSpeakerArr80Music = vstSpeakerConfigTypeLRCLsRsCsSlSr + , kSpeakerArr81Music = vstSpeakerConfigTypeLRCLfeLsRsCsSlSr + , kSpeakerArr50 = vstSpeakerConfigTypeLRCLsRs + , kSpeakerArr51 = vstSpeakerConfigTypeLRCLfeLsRs + , kSpeakerArr102 = vstSpeakerConfigTypeLRCLfeLsRsTflTfcTfrTrlTrrLfe2 + , kSpeakerArrEmpty = vstSpeakerConfigTypeEmpty + , kSpeakerArrUserDefined = vstSpeakerConfigTypeUser +}; + +#if JUCE_BIG_ENDIAN + #define JUCE_MULTICHAR_CONSTANT(a, b, c, d) (a | (((uint32) b) << 8) | (((uint32) c) << 16) | (((uint32) d) << 24)) +#else + #define JUCE_MULTICHAR_CONSTANT(a, b, c, d) (d | (((uint32) c) << 8) | (((uint32) b) << 16) | (((uint32) a) << 24)) +#endif + +enum PresonusExtensionConstants +{ + presonusVendorID = JUCE_MULTICHAR_CONSTANT ('P', 'r', 'e', 'S'), + presonusSetContentScaleFactor = JUCE_MULTICHAR_CONSTANT ('A', 'e', 'C', 's') +}; + +//============================================================================== +/** Structure used for VSTs + + @tags{Audio} +*/ +struct vst2FxBank +{ + int32 magic1; + int32 size; + int32 magic2; + int32 version1; + int32 fxID; + int32 version2; + int32 elements; + int32 current; + char shouldBeZero[124]; + int32 chunkSize; + char chunk[1]; +}; + +#if JUCE_MSVC + #pragma pack(pop) +#elif JUCE_MAC || JUCE_IOS + #pragma options align=reset +#else + #pragma pack(pop) +#endif