Commit e544a7b3 authored by Benjamin Heisch's avatar Benjamin Heisch
Browse files

Changed Name from XPlug to APAL because XPlug... sounds kind of strange and...

Changed Name from XPlug to APAL because XPlug... sounds kind of strange and APAL has a better fitting meaning.
parent 3e50f1ae
Pipeline #19424 passed with stages
in 6 minutes and 9 seconds
cmake_minimum_required (VERSION 3.13) cmake_minimum_required (VERSION 3.13)
project(XPlug) project(APAL)
##########INCLUDES############ ##########INCLUDES############
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_LIST_DIR}/cmake) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_LIST_DIR}/cmake)
...@@ -15,37 +15,37 @@ include(symbol_export) ...@@ -15,37 +15,37 @@ include(symbol_export)
include(GenerateExportHeader) include(GenerateExportHeader)
#########Settings############# #########Settings#############
option(XPLUG_BUILD_EXAMPLES "Build Examples" ON) option(APAL_BUILD_EXAMPLES "Build Examples" ON)
option(XPLUG_BUILD_DOC "Build Documentation" OFF) option(APAL_BUILD_DOC "Build Documentation" OFF)
option(XPLUG_BUILD_TESTS "Build and installs tests,which can be reused and are used in the examples." ON) option(APAL_BUILD_TESTS "Build and installs tests,which can be reused and are used in the examples." ON)
#option(XPLUG_USE_PLUGINVAL "Adds CMAKE Tests, which uses pluginval" ON) #option(APAL_USE_PLUGINVAL "Adds CMAKE Tests, which uses pluginval" ON)
#########################Set Supported Format Variables########################### #########################Set Supported Format Variables###########################
## Here add maybe an detect if feature is build ready macro or function. ## Here add maybe an detect if feature is build ready macro or function.
option(XPLUG_AU_SUPPORT "Support vor AU" OFF) option(APAL_AU_SUPPORT "Support vor AU" OFF)
option(XPLUG_JACK_SUPPORT "IS JACK SUPPORTED?" ${JACK_FOUND}) option(APAL_JACK_SUPPORT "IS JACK SUPPORTED?" ${JACK_FOUND})
option(XPLUG_INSTALL "Install Xplug and Examples, if Build" ON) option(APAL_INSTALL "Install APAL and Examples, if Build" ON)
set_version(0 1 0) set_version(0 1 0)
#####################BUILD###################### #####################BUILD######################
if(XPLUG_BUILD_TESTS) if(APAL_BUILD_TESTS)
enable_testing() enable_testing()
add_subdirectory(test) add_subdirectory(test)
endif(XPLUG_BUILD_TESTS) endif(APAL_BUILD_TESTS)
add_subdirectory(formats) add_subdirectory(formats)
if(XPLUG_BUILD_EXAMPLES) if(APAL_BUILD_EXAMPLES)
add_subdirectory(examples) add_subdirectory(examples)
endif(XPLUG_BUILD_EXAMPLES) endif(APAL_BUILD_EXAMPLES)
add_subdirectory(include) add_subdirectory(include)
...@@ -53,43 +53,43 @@ add_subdirectory(src) ...@@ -53,43 +53,43 @@ add_subdirectory(src)
add_subdirectory(deps) add_subdirectory(deps)
add_library(XPlug STATIC ${XPLUG_INCLUDE_FILES} ${XPLUG_SOURCE_FILES} ) add_library(APAL STATIC ${APAL_INCLUDE_FILES} ${APAL_SOURCE_FILES} )
target_link_libraries(XPlug PUBLIC ${CMAKE_DL_LIBS}) target_link_libraries(APAL PUBLIC ${CMAKE_DL_LIBS})
set_target_properties(XPlug PROPERTIES POSITION_INDEPENDENT_CODE True VERSION ${XPlug_VERSION_MAJOR}) set_target_properties(APAL PROPERTIES POSITION_INDEPENDENT_CODE True VERSION ${APAL_VERSION_MAJOR})
target_compile_features(XPlug PUBLIC cxx_std_14) target_compile_features(APAL PUBLIC cxx_std_14)
EXPORT_SYMBOLS(XPlug FUNCTION_NAMES "XPlugGetVersion") EXPORT_SYMBOLS(APAL FUNCTION_NAMES "APALGetVersion")
GENERATE_EXPORT_HEADER(XPlug) GENERATE_EXPORT_HEADER(APAL)
GENERATE_VERSION_HEADER(XPlug VISIBILITY PRIVATE) GENERATE_VERSION_HEADER(APAL VISIBILITY PRIVATE)
target_include_directories(XPlug PUBLIC target_include_directories(APAL PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include> $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>
$<INSTALL_INTERFACE:include> ) $<INSTALL_INTERFACE:include> )
target_include_directories(XPlug PUBLIC target_include_directories(APAL PUBLIC
$<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/generated> $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/generated>
$<INSTALL_INTERFACE:include> ) $<INSTALL_INTERFACE:include> )
if(XPLUG_INSTALL) if(APAL_INSTALL)
install(TARGETS XPlug EXPORT XPlugExport DESTINATION lib) install(TARGETS APAL EXPORT APALExport DESTINATION lib)
install(EXPORT XPlugExport NAMESPACE XPlug:: DESTINATION cmake) install(EXPORT APALExport NAMESPACE APAL:: DESTINATION cmake)
install(FILES cmake/FindJack.cmake install(FILES cmake/FindJack.cmake
cmake/Findpluginval.cmake cmake/Findpluginval.cmake
cmake/FindTortureTester.cmake cmake/FindTortureTester.cmake
DESTINATION cmake) DESTINATION cmake)
set(CPACK_PACKAGE_NAME "XPlug") set(CPACK_PACKAGE_NAME "APAL")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "XPlug a Crossplattform audioplugin abstraction library") set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "APAL a Crossplattform audioplugin abstraction library")
set(CPACK_PACKAGE_DESCRIPTION "XPlug a Crossplattform audioplugin abstraction library") set(CPACK_PACKAGE_DESCRIPTION "APAL a Crossplattform audioplugin abstraction library")
set(CPACK_PACKAGE_VENDOR "Benjamin Heisch") set(CPACK_PACKAGE_VENDOR "Benjamin Heisch")
#set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/ReadMe.txt") #set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/ReadMe.txt")
#set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/Copyright.txt") #set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/Copyright.txt")
set(CPACK_PACKAGE_VERSION_MAJOR ${XPlug_VERSION_MAJOR}) set(CPACK_PACKAGE_VERSION_MAJOR ${APAL_VERSION_MAJOR})
set(CPACK_PACKAGE_VERSION_MINOR ${XPlug_VERSION_MINOR}) set(CPACK_PACKAGE_VERSION_MINOR ${APAL_VERSION_MINOR})
set(CPACK_PACKAGE_VERSION_PATCH ${XPlug_VERSION_PATCH}) set(CPACK_PACKAGE_VERSION_PATCH ${APAL_VERSION_PATCH})
set(CPACK_PACKAGE_CONTACT "Benjamin Heisch") set(CPACK_PACKAGE_CONTACT "Benjamin Heisch")
#set(CPACK_PACKAGE_INSTALL_DIRECTORY "CMake ${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}") #set(CPACK_PACKAGE_INSTALL_DIRECTORY "CMake ${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}")
#SET(CPACK_DEBIAN_PACKAGE_DEPENDS libc6 (>= 2.7-18) ) #SET(CPACK_DEBIAN_PACKAGE_DEPENDS libc6 (>= 2.7-18) )
include(CPack) include(CPack)
endif(XPLUG_INSTALL) endif(APAL_INSTALL)
# XPlug # APAL
XPlug is an crossplatform audio abstraction plugin, which is currently under heavy development. APAL is an crossplatform audio abstraction plugin, which is currently under heavy development.
At the moment it supports VST2, VST3, LV2 and LADSPA. But there are a lot more to come, because its made for adding more Formats to it. At the moment it supports VST2, VST3, LV2 and LADSPA. But there are a lot more to come, because its made for adding more Formats to it.
Because its in an early phase of development it just supports audio and midi processing ( sure a lot more too, but that are details). Because its in an early phase of development it just supports audio and midi processing ( sure a lot more too, but that are details).
There should be GUI and Parameter support soon, so that this Library can be used in production. 6 There should be GUI and Parameter support soon, so that this Library can be used in production. 6
## Dependencies ## Dependencies
Before building XPlug make sure, that all dependencies are installed. For the buildprocess you need CMake and an compiler. Before building APAL make sure, that all dependencies are installed. For the buildprocess you need CMake and an compiler.
To install optional dependencies like VST3, LV2 and some other test-utilities execute the install-script in the scripts folder. To install optional dependencies like VST3, LV2 and some other test-utilities execute the install-script in the scripts folder.
Execute the script, which matches your plattform (sh for unix like operatingsystems and bat for windows). You can also just call Execute the script, which matches your plattform (sh for unix like operatingsystems and bat for windows). You can also just call
the crossplattformway with cmake and execute the following commands in your terminal: the crossplattformway with cmake and execute the following commands in your terminal:
...@@ -26,7 +26,7 @@ cmake -DINSTALL_PREFIX=build/deps -DBUILD_DIR=build/deps -P scripts/install.cmak ...@@ -26,7 +26,7 @@ cmake -DINSTALL_PREFIX=build/deps -DBUILD_DIR=build/deps -P scripts/install.cmak
# Building # Building
To Build XPlug, you can just use the standard CMake behaviour (Make sure, that the required dependencies are installed). To Build APAL, you can just use the standard CMake behaviour (Make sure, that the required dependencies are installed).
An Insource build from commandline, started in the root directory can look like: An Insource build from commandline, started in the root directory can look like:
mkdir build mkdir build
cd build cd build
...@@ -37,26 +37,26 @@ If you also want to install everything just execute the follwing command in the ...@@ -37,26 +37,26 @@ If you also want to install everything just execute the follwing command in the
cmake --build . --target install cmake --build . --target install
if you use Visual Studio with generated Project Files, this may fail. If it does execute the Solution as Administrator and execute the INSTALL-Project. if you use Visual Studio with generated Project Files, this may fail. If it does execute the Solution as Administrator and execute the INSTALL-Project.
You can also just add XPlug to your Repository and build it along with your Project. But make sure, that cmake finds the Modules, so the cmake functionality is also available for your Project. You can also just add APAL to your Repository and build it along with your Project. But make sure, that cmake finds the Modules, so the cmake functionality is also available for your Project.
# Using XPlug # Using APAL
To use XPlug you have to link the needed Libraries wiht your Plugin. You have to link the xplug-library and the needed format libraries. To use APAL you have to link the needed Libraries wiht your Plugin. You have to link the APAL-library and the needed format libraries.
If you want to build a Plugin, with support VST2,3 and LV2 then link your library with xplug vst2 vst3 and lv2 libraries.If you have seperated binaries for each format, than add your source multiple times and link xplug and just the formats you want to support in that plugin. If you want to build a Plugin, with support VST2,3 and LV2 then link your library with APAL vst2 vst3 and lv2 libraries.If you have seperated binaries for each format, than add your source multiple times and link APAL and just the formats you want to support in that plugin.
If you link properly you can than just derive from IPlugin and implement the whole components yourself, or just use LazyPlugin as a starting point, like in the examples. If you link properly you can than just derive from IPlugin and implement the whole components yourself, or just use LazyPlugin as a starting point, like in the examples.
The API should behave same, but there are some differences in the implementation. The API should behave same, but there are some differences in the implementation.
The examples are a good starting Point to get your Hands dirty, so look there if you want to know more. The examples are a good starting Point to get your Hands dirty, so look there if you want to know more.
# Thinks you may should know # Thinks you may should know
# How to use XPlug # How to use APAL
XPlug is build around an internal API, which unifies the audiopluginformats. To make the use of this API, there are a lot of things already implemeneted. APAL is build around an internal API, which unifies the audiopluginformats. To make the use of this API, there are a lot of things already implemeneted.
The API consists of an IPlugin and the IPlugin give access to multiple components. But you dont have to implement them all. In the examples the LazyPlugin is used. The API consists of an IPlugin and the IPlugin give access to multiple components. But you dont have to implement them all. In the examples the LazyPlugin is used.
The LazyPlugin as an example just uses 3 already written components, which match this lets just get started approach. You can combine the components as you want, it could depent on your goal. The LazyPlugin as an example just uses 3 already written components, which match this lets just get started approach. You can combine the components as you want, it could depent on your goal.
To get more information about the different implementation look in the Sourcecode documentation of the different classes. (The source-code generated doxygen comments are comming soon. Just be a little patient.) To get more information about the different implementation look in the Sourcecode documentation of the different classes. (The source-code generated doxygen comments are comming soon. Just be a little patient.)
# About the internal API # About the internal API
This Information are usefull if you want to work with the API. If you just want to write cool Audioplugins, pick the right implementations and start programming your idea. This Information are usefull if you want to work with the API. If you just want to write cool Audioplugins, pick the right implementations and start programming your idea.
XPlug is mainly an API, which unifies the audiopluginformats. So thats IPlugin. Because Audioplugin are quiet complicated right now, the functinality is seperated in components. APAL is mainly an API, which unifies the audiopluginformats. So thats IPlugin. Because Audioplugin are quiet complicated right now, the functinality is seperated in components.
IPlugin just manage all this components(... to be honest, in the most cases it just hold the references of the components). IPlugin just manage all this components(... to be honest, in the most cases it just hold the references of the components).
The portcomponent is an very important one, because it manages the in and outputdata like MIDI and audio, which is represented by an IPort interface. The portcomponent is an very important one, because it manages the in and outputdata like MIDI and audio, which is represented by an IPort interface.
The use of the direct portcomponent may not feel that great so... just use it like in the examples. Or do something fancy and share it with us. The use of the direct portcomponent may not feel that great so... just use it like in the examples. Or do something fancy and share it with us.
......
find_package(pluginval) find_package(pluginval)
find_package(TortureTester) find_package(TortureTester)
find_package(VST3) find_package(VST3)
set(__DIR_OF_XPLUG_CMAKE ${CMAKE_CURRENT_LIST_DIR}) set(__DIR_OF_APAL_CMAKE ${CMAKE_CURRENT_LIST_DIR})
###########################HELPER_FUNCTIONS############################## ###########################HELPER_FUNCTIONS##############################
# Getting a String of the current architecture(Which is Vst3-Naming compliant) # Getting a String of the current architecture(Which is Vst3-Naming compliant)
# The Architecture stirng will be written in the ARCHITECTURE_NAME Variable. # The Architecture stirng will be written in the ARCHITECTURE_NAME Variable.
...@@ -74,7 +74,7 @@ function(create_vst3_package) ...@@ -74,7 +74,7 @@ function(create_vst3_package)
COMMAND ${CMAKE_COMMAND} -E make_directory ${VST3_PACKAGE_ROOT}/Contents/Resources COMMAND ${CMAKE_COMMAND} -E make_directory ${VST3_PACKAGE_ROOT}/Contents/Resources
COMMAND ${CMAKE_COMMAND} -E make_directory ${VST3_PACKAGE_ROOT}/Contents/${ARCHITECTURE_NAME} COMMAND ${CMAKE_COMMAND} -E make_directory ${VST3_PACKAGE_ROOT}/Contents/${ARCHITECTURE_NAME}
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:${TARGET}> ${VST3_PACKAGE_ROOT}/Contents/${ARCHITECTURE_NAME}/$<TARGET_FILE_NAME:${TARGET}> COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:${TARGET}> ${VST3_PACKAGE_ROOT}/Contents/${ARCHITECTURE_NAME}/$<TARGET_FILE_NAME:${TARGET}>
COMMAND ${CMAKE_COMMAND} -E copy ${__DIR_OF_XPLUG_CMAKE}/speaker.ico ${VST3_PACKAGE_ROOT}/Plugin.ico) COMMAND ${CMAKE_COMMAND} -E copy ${__DIR_OF_APAL_CMAKE}/speaker.ico ${VST3_PACKAGE_ROOT}/Plugin.ico)
if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows" OR ${CMAKE_SYSTEM_NAME} STREQUAL "MSYS") if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows" OR ${CMAKE_SYSTEM_NAME} STREQUAL "MSYS")
file(GENERATE OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/generated_desktop.ini CONTENT "[.ShellClassInfo]\nIconResource=Plugin.ico,0") file(GENERATE OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/generated_desktop.ini CONTENT "[.ShellClassInfo]\nIconResource=Plugin.ico,0")
set(WINDOWS_EXTRA_DIR "/${ARCHITECTURE_NAME}/") set(WINDOWS_EXTRA_DIR "/${ARCHITECTURE_NAME}/")
......
/* /*
* IMPORTANT: The author of XPlug has no connection with the * IMPORTANT: The author of APAL has no connection with the
* author of the VeSTige VST-compatibility header, has had no * author of the VeSTige VST-compatibility header, has had no
* involvement in its creation. * involvement in its creation.
* *
......
add_library(MidiForwarder MODULE MidiForwarder.cpp ) add_library(MidiForwarder MODULE MidiForwarder.cpp )
target_link_libraries(MidiForwarder PUBLIC XPlug) target_link_libraries(MidiForwarder PUBLIC APAL)
if(XPLUG_LADSPA_SUPPORT) if(APAL_LADSPA_SUPPORT)
target_link_libraries(MidiForwarder PUBLIC ladspa) target_link_libraries(MidiForwarder PUBLIC ladspa)
endif(XPLUG_LADSPA_SUPPORT) endif(APAL_LADSPA_SUPPORT)
if(XPLUG_VST2_SUPPORT) if(APAL_VST2_SUPPORT)
target_link_libraries(MidiForwarder PUBLIC vst2) target_link_libraries(MidiForwarder PUBLIC vst2)
endif(XPLUG_VST2_SUPPORT) endif(APAL_VST2_SUPPORT)
if(XPLUG_VST3_SUPPORT) if(APAL_VST3_SUPPORT)
target_link_libraries(MidiForwarder PUBLIC vst3) target_link_libraries(MidiForwarder PUBLIC vst3)
endif(XPLUG_VST3_SUPPORT) endif(APAL_VST3_SUPPORT)
if(XPLUG_LV2_SUPPORT) if(APAL_LV2_SUPPORT)
target_link_libraries(MidiForwarder PUBLIC lv2) target_link_libraries(MidiForwarder PUBLIC lv2)
add_custom_command(TARGET MidiForwarder POST_BUILD COMMAND TTLGenerator ARGS $<TARGET_FILE:MidiForwarder> BYPRODUCTS manifest.ttl MidiForwarder.ttl ) add_custom_command(TARGET MidiForwarder POST_BUILD COMMAND TTLGenerator ARGS $<TARGET_FILE:MidiForwarder> BYPRODUCTS manifest.ttl MidiForwarder.ttl )
endif(XPLUG_LV2_SUPPORT) endif(APAL_LV2_SUPPORT)
if(XPLUG_BUILD_TESTS) if(APAL_BUILD_TESTS)
include(xplug) include(APAL)
if(XPLUG_VST2_SUPPORT) if(APAL_VST2_SUPPORT)
RUN_VST2_TEST(MidiForwarder) RUN_VST2_TEST(MidiForwarder)
endif(XPLUG_VST2_SUPPORT) endif(APAL_VST2_SUPPORT)
if(XPLUG_VST3_SUPPORT) if(APAL_VST3_SUPPORT)
RUN_VST3_TEST(MidiForwarder) RUN_VST3_TEST(MidiForwarder)
endif(XPLUG_VST3_SUPPORT) endif(APAL_VST3_SUPPORT)
if(XPLUG_LADSPA_SUPPORT) if(APAL_LADSPA_SUPPORT)
RUN_LADSPA_TESTS(MidiForwarder) RUN_LADSPA_TESTS(MidiForwarder)
endif(XPLUG_LADSPA_SUPPORT) endif(APAL_LADSPA_SUPPORT)
if(XPLUG_LV2_SUPPORT) if(APAL_LV2_SUPPORT)
RUN_LV2_TESTS(MidiForwarder) RUN_LV2_TESTS(MidiForwarder)
endif(XPLUG_LV2_SUPPORT) endif(APAL_LV2_SUPPORT)
endif(XPLUG_BUILD_TESTS) endif(APAL_BUILD_TESTS)
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
#include <base/PluginBases.hpp> #include <base/PluginBases.hpp>
#include <base/Ports.hpp> #include <base/Ports.hpp>
#include <tools/PortHandling.hpp> #include <tools/PortHandling.hpp>
using namespace XPlug; using namespace APAL;
/** /**
* @brief MidiForwarder Example class, which has 1 Midi Input and 2 Midi * @brief MidiForwarder Example class, which has 1 Midi Input and 2 Midi
* Outputs. The Midi in signal is forwarded to the 2 Midi Outputs * Outputs. The Midi in signal is forwarded to the 2 Midi Outputs
...@@ -33,7 +33,7 @@ public: ...@@ -33,7 +33,7 @@ public:
this->infoComponent->pluginName = "MidiForwarder"; this->infoComponent->pluginName = "MidiForwarder";
this->infoComponent->creatorName = "Benjamin Heisch"; this->infoComponent->creatorName = "Benjamin Heisch";
this->infoComponent->pluginUri = this->infoComponent->pluginUri =
"http://xplug_plug.in/examples/MidiForwarder"; "http://APAL_plug.in/examples/MidiForwarder";
} }
// Geerbt über IPlugin // Geerbt über IPlugin
virtual void processAudio() override virtual void processAudio() override
......
add_library(VolumePlugin MODULE VolumePlugin.cpp ) add_library(VolumePlugin MODULE VolumePlugin.cpp )
target_link_libraries(VolumePlugin PUBLIC XPlug) target_link_libraries(VolumePlugin PUBLIC APAL)
if(XPLUG_LADSPA_SUPPORT) if(APAL_LADSPA_SUPPORT)
target_link_libraries(VolumePlugin PUBLIC ladspa) target_link_libraries(VolumePlugin PUBLIC ladspa)
endif(XPLUG_LADSPA_SUPPORT) endif(APAL_LADSPA_SUPPORT)
if(XPLUG_VST2_SUPPORT) if(APAL_VST2_SUPPORT)
target_link_libraries(VolumePlugin PUBLIC vst2) target_link_libraries(VolumePlugin PUBLIC vst2)
endif(XPLUG_VST2_SUPPORT) endif(APAL_VST2_SUPPORT)
if(XPLUG_VST3_SUPPORT) if(APAL_VST3_SUPPORT)
target_link_libraries(VolumePlugin PUBLIC vst3) target_link_libraries(VolumePlugin PUBLIC vst3)
endif(XPLUG_VST3_SUPPORT) endif(APAL_VST3_SUPPORT)
if(XPLUG_LV2_SUPPORT) if(APAL_LV2_SUPPORT)
target_link_libraries(VolumePlugin PUBLIC lv2) target_link_libraries(VolumePlugin PUBLIC lv2)
add_custom_command(TARGET VolumePlugin POST_BUILD COMMAND TTLGenerator ARGS $<TARGET_FILE:VolumePlugin> BYPRODUCTS manifest.ttl VolumePlugin.ttl ) add_custom_command(TARGET VolumePlugin POST_BUILD COMMAND TTLGenerator ARGS $<TARGET_FILE:VolumePlugin> BYPRODUCTS manifest.ttl VolumePlugin.ttl )
endif(XPLUG_LV2_SUPPORT) endif(APAL_LV2_SUPPORT)
if(XPLUG_BUILD_TESTS) if(APAL_BUILD_TESTS)
include(xplug) include(APAL)
if(XPLUG_VST2_SUPPORT) if(APAL_VST2_SUPPORT)
RUN_VST2_TEST(VolumePlugin) RUN_VST2_TEST(VolumePlugin)
endif(XPLUG_VST2_SUPPORT) endif(APAL_VST2_SUPPORT)
if(XPLUG_VST3_SUPPORT) if(APAL_VST3_SUPPORT)
RUN_VST3_TEST(VolumePlugin) RUN_VST3_TEST(VolumePlugin)
endif(XPLUG_VST3_SUPPORT) endif(APAL_VST3_SUPPORT)
if(XPLUG_LADSPA_SUPPORT) if(APAL_LADSPA_SUPPORT)
RUN_LADSPA_TESTS(VolumePlugin) RUN_LADSPA_TESTS(VolumePlugin)
endif(XPLUG_LADSPA_SUPPORT) endif(APAL_LADSPA_SUPPORT)
if(XPLUG_LV2_SUPPORT) if(APAL_LV2_SUPPORT)
RUN_LV2_TESTS(VolumePlugin) RUN_LV2_TESTS(VolumePlugin)
endif(XPLUG_LV2_SUPPORT) endif(APAL_LV2_SUPPORT)
endif(XPLUG_BUILD_TESTS) endif(APAL_BUILD_TESTS)
#include <base/PluginBases.hpp> #include <base/PluginBases.hpp>
#include <base/Ports.hpp> #include <base/Ports.hpp>
#include <tools/PortHandling.hpp> #include <tools/PortHandling.hpp>
using namespace XPlug; using namespace APAL;
/** /**
* @brief VolumePlguin class, which forwards audiodata and just changes the * @brief VolumePlguin class, which forwards audiodata and just changes the
* Volume. For an easy start its derived from LazyPlugin, to start easily. * Volume. For an easy start its derived from LazyPlugin, to start easily.
...@@ -32,7 +32,7 @@ public: ...@@ -32,7 +32,7 @@ public:
this->infoComponent->pluginName = "VolumePlugin"; this->infoComponent->pluginName = "VolumePlugin";
this->infoComponent->creatorName = "Benjamin Heisch"; this->infoComponent->creatorName = "Benjamin Heisch";
this->infoComponent->pluginUri = this->infoComponent->pluginUri =
"http://xplug_plug.in/examples/VolumePlugin"; "http://APAL_plug.in/examples/VolumePlugin";
} }
// Geerbt über IPlugin // Geerbt über IPlugin
......
# Enable XPLUG_LADSPA_SUPPORT # Enable APAL_LADSPA_SUPPORT
# if its forced to not be used by specify XPLUG_LADSPA_SUPPORT to OFF, dont build it. # if its forced to not be used by specify APAL_LADSPA_SUPPORT to OFF, dont build it.
option(XPLUG_LADSPA_SUPPORT "Support vor LADSPA" ON) option(APAL_LADSPA_SUPPORT "Support vor LADSPA" ON)
if(XPLUG_LADSPA_SUPPORT) if(APAL_LADSPA_SUPPORT)
include(symbol_export) include(symbol_export)
add_library(ladspa "ladspa.cpp") add_library(ladspa "ladspa.cpp")
set_target_properties(ladspa PROPERTIES POSITION_INDEPENDENT_CODE True) set_target_properties(ladspa PROPERTIES POSITION_INDEPENDENT_CODE True)
target_link_libraries(ladspa XPlug) target_link_libraries(ladspa APAL)
target_compile_features(ladspa PUBLIC cxx_std_11) target_compile_features(ladspa PUBLIC cxx_std_11)
target_include_directories(ladspa PRIVATE ${CMAKE_CURRENT_LIST_DIR}/../../src ${PROJECT_SOURCE_DIR}/deps) target_include_directories(ladspa PRIVATE ${CMAKE_CURRENT_LIST_DIR}/../../src ${PROJECT_SOURCE_DIR}/deps)
EXPORT_SYMBOLS(ladspa FUNCTION_NAMES ladspa_descriptor) EXPORT_SYMBOLS(ladspa FUNCTION_NAMES ladspa_descriptor)
install(TARGETS ladspa EXPORT XPlugExport DESTINATION lib) install(TARGETS ladspa EXPORT APALExport DESTINATION lib)
add_subdirectory(tests) add_subdirectory(tests)
endif(XPLUG_LADSPA_SUPPORT) endif(APAL_LADSPA_SUPPORT)
\ No newline at end of file \ No newline at end of file
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
#include <tools/PortHandling.hpp> #include <tools/PortHandling.hpp>
#include <vector> #include <vector>
using namespace XPlug; using namespace APAL;
struct LADSPAHandleDataType struct LADSPAHandleDataType
{ {
......
if(XPLUG_BUILD_TESTS) if(APAL_BUILD_TESTS)
target_include_directories(XValidate PUBLIC ${CMAKE_CURRENT_LIST_DIR}/.. ${PROJECT_SOURCE_DIR}/deps/) target_include_directories(XValidate PUBLIC ${CMAKE_CURRENT_LIST_DIR}/.. ${PROJECT_SOURCE_DIR}/deps/)
target_sources(XValidate PUBLIC ${CMAKE_CURRENT_LIST_DIR}/LADSPATestSuite.cpp) target_sources(XValidate PUBLIC ${CMAKE_CURRENT_LIST_DIR}/LADSPATestSuite.cpp)
endif(XPLUG_BUILD_TESTS) endif(APAL_BUILD_TESTS)
\ No newline at end of file \ No newline at end of file
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
#include "ladspa.h" #include "ladspa.h"
#include "tools/LibLoading.hpp" #include "tools/LibLoading.hpp"
#include <vector> #include <vector>
using namespace XPlug; using namespace APAL;
/** /**
* @brief LADSPA Test Suite for XValidate/system_tests * @brief LADSPA Test Suite for XValidate/system_tests
*/ */
......
# Enable XPLUG_LV2_SUPPORT if present, othertwhise not. # Enable APAL_LV2_SUPPORT if present, othertwhise not.
# if its forced to used by specify XPLUG_LV2_SUPPORT to ON, VST3 package is required. # if its forced to used by specify APAL_LV2_SUPPORT to ON, VST3 package is required.
find_package(LV2) find_package(LV2)
option(XPLUG_LV2_SUPPORT "Support vor LV2" ${LV2_FOUND}) option(APAL_LV2_SUPPORT "Support vor LV2" ${LV2_FOUND})
if(XPLUG_LV2_SUPPORT) if(APAL_LV2_SUPPORT)
include(symbol_export) include(symbol_export)
find_package(LV2 REQUIRED) find_package(LV2 REQUIRED)
add_library(lv2 "lv2.cpp" "lv2_ttl_generation.cpp") add_library(lv2 "lv2.cpp" "lv2_ttl_generation.cpp")
set_target_properties(lv2 PROPERTIES POSITION_INDEPENDENT_CODE True) set_target_properties(lv2 PROPERTIES POSITION_INDEPENDENT_CODE True)
target_link_libraries(lv2 XPlug) target_link_libraries(lv2 APAL)
target_include_directories(lv2 SYSTEM PRIVATE ${LV2_INCLUDE_DIRS}) target_include_directories(lv2 SYSTEM PRIVATE ${LV2_INCLUDE_DIRS})
target_compile_features(lv2 PUBLIC cxx_std_11) target_compile_features(lv2 PUBLIC cxx_std_11)
EXPORT_SYMBOLS(lv2 FUNCTION_NAMES lv2_descriptor lv2_lib_descriptor getTTLFromPlugin getManifestFromMultpleInfos getPluginInfos) EXPORT_SYMBOLS(lv2 FUNCTION_NAMES lv2_descriptor lv2_lib_descriptor getTTLFromPlugin getManifestFromMultpleInfos getPluginInfos)
add_executable(TTLGenerator "TtlGenerator.cpp") add_executable(TTLGenerator "TtlGenerator.cpp")
target_link_libraries(TTLGenerator XPlug) target_link_libraries(TTLGenerator APAL)
install(TARGETS lv2 EXPORT XPlugExport DESTINATION lib) install(TARGETS lv2 EXPORT APALExport DESTINATION lib)
add_subdirectory(tests) add_subdirectory(tests)
# add_executable(tt "turtle.cpp") # add_executable(tt "turtle.cpp")
endif(XPLUG_LV2_SUPPORT) endif(APAL_LV2_SUPPORT)
\ No newline at end of file \ No newline at end of file
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
#include <tools/LibLoading.hpp> #include <tools/LibLoading.hpp>
#include <tools/StringTools.hpp> #include <tools/StringTools.hpp>
using namespace XPlug; using namespace APAL;
/********FUNCTION VARIABLES*********/ /********FUNCTION VARIABLES*********/
std::string (*getTTLFromPluginPtr)(IPlugin*) = nullptr; std::string (*getTTLFromPluginPtr)(IPlugin*) = nullptr;
std::string (*getManifestFromMultpleInfosPtr)(std::vector<TTLPluginInfo>) = std::string (*getManifestFromMultpleInfosPtr)(std::vector<TTLPluginInfo>) =
...@@ -41,7 +41,7 @@ main(int argc, char* argv[]) ...@@ -41,7 +41,7 @@ main(int argc, char* argv[])
/*********LOAD LIBRARY AND FUNCTIONS********/ /*********LOAD LIBRARY AND FUNCTIONS********/
std::string pluginLib(argv[1]); std::string pluginLib(argv[1]);
XPlug::replaceInString(pluginLib, "\\", "/"); APAL::replaceInString(pluginLib, "\\", "/");
auto pluginLibHandle = LoadLib(pluginLib.c_str()); auto pluginLibHandle = LoadLib(pluginLib.c_str());
if (pluginLibHandle == nullptr) { if (pluginLibHandle == nullptr) {
std::cerr << GetErrorStr() << std::endl; std::cerr << GetErrorStr() << std::endl;
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
#include <tools/PortHandling.hpp> #include <tools/PortHandling.hpp>
#include <unordered_map> #include <unordered_map>
#include <vector> #include <vector>
using namespace XPlug; using namespace APAL;
/** /**
* @brief Handle, wich is used, to create an possibility to write and read Midi * @brief Handle, wich is used, to create an possibility to write and read Midi
...@@ -145,7 +145,7 @@ extern "C" ...@@ -145,7 +145,7 @@ extern "C"
size_t midiPortIndex = 0; size_t midiPortIndex = 0;
iteratePortsFlat( iteratePortsFlat(
data->plug, data->plug,
[IPort, DataLocation, &data, &midiPortIndex](XPlug::IPort* p, [IPort, DataLocation, &data, &midiPortIndex](APAL::IPort* p,
size_t ind) { size_t ind) {
if (IPort == ind) { if (IPort == ind) {