Initial: OPLabsBandChannel.lv2 + OPLabsBandBus.lv2

This commit is contained in:
2026-06-21 00:03:37 -04:00
commit f8e697a064
68 changed files with 9591 additions and 0 deletions
+38
View File
@@ -0,0 +1,38 @@
cmake_minimum_required(VERSION 3.16)
project(oplabs-lv2-plugins
VERSION 1.0.0
DESCRIPTION "OPLabs LV2 Audio Plugin Collection"
LANGUAGES CXX
)
# ── C++ Standard ─────────────────────────────────────────────────────
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# ── Position-independent code (required for shared libs) ─────────────
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
# ── Hide internal symbols by default ────────────────────────────────
set(CMAKE_C_VISIBILITY_PRESET hidden)
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
set(CMAKE_VISIBILITY_INLINES_HIDDEN ON)
# ── Find LV2 ────────────────────────────────────────────────────────
find_path(LV2_INCLUDE_DIR
NAMES lv2/core/lv2.h
PATHS /usr/include /usr/local/include
)
find_path(LV2_STATE_INCLUDE_DIR
NAMES lv2/state/state.h
PATHS /usr/include /usr/local/include
)
if(NOT LV2_INCLUDE_DIR)
message(FATAL_ERROR "LV2 headers not found. Install lv2-dev.")
endif()
message(STATUS "LV2 include dir: ${LV2_INCLUDE_DIR}")
# ── Subdirectories ──────────────────────────────────────────────────
add_subdirectory(src)
+100
View File
@@ -0,0 +1,100 @@
# OPLabs LV2 Plugin Collection
A collection of LV2 audio plugins for band mixing, designed for PiPedal and
any standard LV2 host.
## Plugins
### OPLabsBandChannel
Stereo channel strip for individual instrument/voice channels.
- **URI:** `http://ourpad.casa/plugins/oplabs-band-channel#`
- **Class:** `lv2:UtilityPlugin`
- **Controls:** Volume (-60..+6 dB), Pan, Mute, Solo, Instrument type
- **Meters:** Peak level L/R
- **Features:** State save/restore
### OPLabsBandBus
Stereo bus/group processor.
- **URI:** `http://ourpad.casa/plugins/oplabs-band-bus#`
- **Class:** `lv2:UtilityPlugin`
- **Controls:** Volume (-60..+6 dB), Mute
- **Meters:** Peak level L/R
- **Features:** State save/restore
## Directory Structure
```
oplabs-lv2-plugins/
├── CMakeLists.txt # Top-level build
├── README.md
├── lv2/
│ ├── OPLabsBandChannel.lv2/ # LV2 bundle (TTL + .so)
│ │ ├── manifest.ttl
│ │ ├── OPLabsBandChannel.ttl
│ │ └── OPLabsBandChannel.so
│ └── OPLabsBandBus.lv2/ # LV2 bundle (TTL + .so)
│ ├── manifest.ttl
│ ├── OPLabsBandBus.ttl
│ └── OPLabsBandBus.so
└── src/
├── CMakeLists.txt
├── OPLabsBandChannel.cpp
├── OPLabsBandChannel.hpp
├── OPLabsBandChannel.version
├── OPLabsBandBus.cpp
├── OPLabsBandBus.hpp
└── OPLabsBandBus.version
```
## Building
```bash
# Prerequisites
sudo apt install build-essential cmake lv2-dev
# Configure and build
cd ~/projects/oplabs-lv2-plugins
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
# Verify plugins
lv2ls | grep ourpad
lv2info http://ourpad.casa/plugins/oplabs-band-channel#
lv2info http://ourpad.casa/plugins/oplabs-band-bus#
```
The `.so` files are placed directly into `lv2/OPLabsBandChannel.lv2/` and
`lv2/OPLabsBandBus.lv2/`, making each directory a self-contained LV2 bundle.
## Setup (local LV2 path)
Add the plugins to your LV2 path:
```bash
export LV2_PATH="${HOME}/projects/oplabs-lv2-plugins/lv2:${LV2_PATH}"
```
Or install system-wide:
```bash
sudo cmake --install build
```
## Deploy to PiPedal
```bash
# Copy the lv2 directory to the Pi
scp -r lv2/* pi@192.168.0.245:/home/bib/oplabs-lv2-plugins/
# On the Pi, set up the LV2 path or symlink
# ssh pi@192.168.0.245
# export LV2_PATH="/home/bib/oplabs-lv2-plugins:$LV2_PATH"
```
## License
MIT
+364
View File
@@ -0,0 +1,364 @@
# This is the CMakeCache file.
# For build in directory: /home/oplabs/projects/oplabs-lv2-plugins/build
# It was generated by CMake: /home/oplabs/.hermes/hermes-agent/venv/lib/python3.11/site-packages/cmake/data/bin/cmake
# You can edit this file to change values found and used by cmake.
# If you do not want to change any of the values, simply exit the editor.
# If you do want to change a value, simply edit, save, and exit the editor.
# The syntax for the file is as follows:
# KEY:TYPE=VALUE
# KEY is the name of a variable in the cache.
# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.
# VALUE is the current value for the KEY.
########################
# EXTERNAL cache entries
########################
//Path to a program.
CMAKE_ADDR2LINE:FILEPATH=/usr/bin/addr2line
//Path to a program.
CMAKE_AR:FILEPATH=/usr/bin/ar
//Choose the type of build, options are: None Debug Release RelWithDebInfo
// MinSizeRel ...
CMAKE_BUILD_TYPE:STRING=Release
//Enable/Disable color output during build.
CMAKE_COLOR_MAKEFILE:BOOL=ON
//CXX compiler
CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++
//A wrapper around 'ar' adding the appropriate '--plugin' option
// for the GCC compiler
CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-15
//A wrapper around 'ranlib' adding the appropriate '--plugin' option
// for the GCC compiler
CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-15
//Flags used by the CXX compiler during all build types.
CMAKE_CXX_FLAGS:STRING=
//Flags used by the CXX compiler during DEBUG builds.
CMAKE_CXX_FLAGS_DEBUG:STRING=-g
//Flags used by the CXX compiler during MINSIZEREL builds.
CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
//Flags used by the CXX compiler during RELEASE builds.
CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
//Flags used by the CXX compiler during RELWITHDEBINFO builds.
CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
//Path to a program.
CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND
//Flags used by the linker during all build types.
CMAKE_EXE_LINKER_FLAGS:STRING=
//Flags used by the linker during DEBUG builds.
CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=
//Flags used by the linker during MINSIZEREL builds.
CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=
//Flags used by the linker during RELEASE builds.
CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=
//Flags used by the linker during RELWITHDEBINFO builds.
CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
//Enable/Disable output of compile commands during generation.
CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=
//Value Computed by CMake.
CMAKE_FIND_PACKAGE_REDIRECTS_DIR:STATIC=/home/oplabs/projects/oplabs-lv2-plugins/build/CMakeFiles/pkgRedirects
//Install path prefix, prepended onto install directories.
CMAKE_INSTALL_PREFIX:PATH=/usr/local
//Path to a program.
CMAKE_LINKER:FILEPATH=/usr/bin/ld
//Path to a program.
CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/gmake
//Flags used by the linker during the creation of modules during
// all build types.
CMAKE_MODULE_LINKER_FLAGS:STRING=
//Flags used by the linker during the creation of modules during
// DEBUG builds.
CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=
//Flags used by the linker during the creation of modules during
// MINSIZEREL builds.
CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=
//Flags used by the linker during the creation of modules during
// RELEASE builds.
CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=
//Flags used by the linker during the creation of modules during
// RELWITHDEBINFO builds.
CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
//Path to a program.
CMAKE_NM:FILEPATH=/usr/bin/nm
//Path to a program.
CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy
//Path to a program.
CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump
//Value Computed by CMake
CMAKE_PROJECT_COMPAT_VERSION:STATIC=
//Value Computed by CMake
CMAKE_PROJECT_DESCRIPTION:STATIC=OPLabs LV2 Audio Plugin Collection
//Value Computed by CMake
CMAKE_PROJECT_HOMEPAGE_URL:STATIC=
//Value Computed by CMake
CMAKE_PROJECT_NAME:STATIC=oplabs-lv2-plugins
//Value Computed by CMake
CMAKE_PROJECT_SPDX_LICENSE:STATIC=
//Value Computed by CMake
CMAKE_PROJECT_VERSION:STATIC=1.0.0
//Value Computed by CMake
CMAKE_PROJECT_VERSION_MAJOR:STATIC=1
//Value Computed by CMake
CMAKE_PROJECT_VERSION_MINOR:STATIC=0
//Value Computed by CMake
CMAKE_PROJECT_VERSION_PATCH:STATIC=0
//Value Computed by CMake
CMAKE_PROJECT_VERSION_TWEAK:STATIC=
//Path to a program.
CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib
//Path to a program.
CMAKE_READELF:FILEPATH=/usr/bin/readelf
//Flags used by the linker during the creation of shared libraries
// during all build types.
CMAKE_SHARED_LINKER_FLAGS:STRING=
//Flags used by the linker during the creation of shared libraries
// during DEBUG builds.
CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=
//Flags used by the linker during the creation of shared libraries
// during MINSIZEREL builds.
CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=
//Flags used by the linker during the creation of shared libraries
// during RELEASE builds.
CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=
//Flags used by the linker during the creation of shared libraries
// during RELWITHDEBINFO builds.
CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=
//If set, runtime paths are not added when installing shared libraries,
// but are added when building.
CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
//If set, runtime paths are not added when using shared libraries.
CMAKE_SKIP_RPATH:BOOL=NO
//Flags used by the archiver during the creation of static libraries
// during all build types.
CMAKE_STATIC_LINKER_FLAGS:STRING=
//Flags used by the archiver during the creation of static libraries
// during DEBUG builds.
CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING=
//Flags used by the archiver during the creation of static libraries
// during MINSIZEREL builds.
CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING=
//Flags used by the archiver during the creation of static libraries
// during RELEASE builds.
CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING=
//Flags used by the archiver during the creation of static libraries
// during RELWITHDEBINFO builds.
CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING=
//Path to a program.
CMAKE_STRIP:FILEPATH=/usr/bin/strip
//Path to a program.
CMAKE_TAPI:FILEPATH=CMAKE_TAPI-NOTFOUND
//If this value is on, makefiles will be generated without the
// .SILENT directive, and all commands will be echoed to the console
// during the make. This is useful for debugging only. With Visual
// Studio IDE projects all commands are done without /nologo.
CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE
//Path to a file.
LV2_INCLUDE_DIR:PATH=/usr/include
//Path to a file.
LV2_STATE_INCLUDE_DIR:PATH=/usr/include
//Value Computed by CMake
oplabs-lv2-plugins_BINARY_DIR:STATIC=/home/oplabs/projects/oplabs-lv2-plugins/build
//Value Computed by CMake
oplabs-lv2-plugins_IS_TOP_LEVEL:STATIC=ON
//Value Computed by CMake
oplabs-lv2-plugins_SOURCE_DIR:STATIC=/home/oplabs/projects/oplabs-lv2-plugins
########################
# INTERNAL cache entries
########################
//ADVANCED property for variable: CMAKE_ADDR2LINE
CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_AR
CMAKE_AR-ADVANCED:INTERNAL=1
//This is the directory where this CMakeCache.txt was created
CMAKE_CACHEFILE_DIR:INTERNAL=/home/oplabs/projects/oplabs-lv2-plugins/build
//Major version of cmake used to create the current loaded cache
CMAKE_CACHE_MAJOR_VERSION:INTERNAL=4
//Minor version of cmake used to create the current loaded cache
CMAKE_CACHE_MINOR_VERSION:INTERNAL=3
//Patch version of cmake used to create the current loaded cache
CMAKE_CACHE_PATCH_VERSION:INTERNAL=4
//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE
CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1
//Path to CMake executable.
CMAKE_COMMAND:INTERNAL=/home/oplabs/.hermes/hermes-agent/venv/lib/python3.11/site-packages/cmake/data/bin/cmake
//Path to cpack program executable.
CMAKE_CPACK_COMMAND:INTERNAL=/home/oplabs/.hermes/hermes-agent/venv/lib/python3.11/site-packages/cmake/data/bin/cpack
//Path to ctest program executable.
CMAKE_CTEST_COMMAND:INTERNAL=/home/oplabs/.hermes/hermes-agent/venv/lib/python3.11/site-packages/cmake/data/bin/ctest
//ADVANCED property for variable: CMAKE_CXX_COMPILER
CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR
CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB
CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS
CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG
CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL
CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE
CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO
CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_DLLTOOL
CMAKE_DLLTOOL-ADVANCED:INTERNAL=1
//Executable file format
CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS
CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG
CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL
CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE
CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS
CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1
//Name of external makefile project generator.
CMAKE_EXTRA_GENERATOR:INTERNAL=
//Name of generator.
CMAKE_GENERATOR:INTERNAL=Unix Makefiles
//Generator instance identifier.
CMAKE_GENERATOR_INSTANCE:INTERNAL=
//Name of generator platform.
CMAKE_GENERATOR_PLATFORM:INTERNAL=
//Name of generator toolset.
CMAKE_GENERATOR_TOOLSET:INTERNAL=
//Source directory with the top level CMakeLists.txt file for this
// project
CMAKE_HOME_DIRECTORY:INTERNAL=/home/oplabs/projects/oplabs-lv2-plugins
//Install .so files without execute permission.
CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1
//ADVANCED property for variable: CMAKE_LINKER
CMAKE_LINKER-ADVANCED:INTERNAL=1
//Name of CMakeLists files to read
CMAKE_LIST_FILE_NAME:INTERNAL=CMakeLists.txt
//ADVANCED property for variable: CMAKE_MAKE_PROGRAM
CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS
CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG
CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL
CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE
CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_NM
CMAKE_NM-ADVANCED:INTERNAL=1
//number of local generators
CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=2
//ADVANCED property for variable: CMAKE_OBJCOPY
CMAKE_OBJCOPY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_OBJDUMP
CMAKE_OBJDUMP-ADVANCED:INTERNAL=1
//Platform information initialized
CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1
//ADVANCED property for variable: CMAKE_RANLIB
CMAKE_RANLIB-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_READELF
CMAKE_READELF-ADVANCED:INTERNAL=1
//Path to CMake installation.
CMAKE_ROOT:INTERNAL=/home/oplabs/.hermes/hermes-agent/venv/lib/python3.11/site-packages/cmake/data/share/cmake-4.3
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS
CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG
CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL
CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE
CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH
CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SKIP_RPATH
CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS
CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG
CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL
CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE
CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STRIP
CMAKE_STRIP-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_TAPI
CMAKE_TAPI-ADVANCED:INTERNAL=1
//uname command
CMAKE_UNAME:INTERNAL=/usr/bin/uname
//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1
@@ -0,0 +1,102 @@
set(CMAKE_CXX_COMPILER "/usr/bin/c++")
set(CMAKE_CXX_COMPILER_ARG1 "")
set(CMAKE_CXX_COMPILER_ID "GNU")
set(CMAKE_CXX_COMPILER_VERSION "15.2.0")
set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "")
set(CMAKE_CXX_COMPILER_WRAPPER "")
set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "17")
set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "ON")
set(CMAKE_CXX_STANDARD_LATEST "26")
set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20;cxx_std_23;cxx_std_26")
set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters")
set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates")
set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates")
set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17")
set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20")
set(CMAKE_CXX23_COMPILE_FEATURES "cxx_std_23")
set(CMAKE_CXX26_COMPILE_FEATURES "cxx_std_26")
set(CMAKE_CXX_PLATFORM_ID "Linux")
set(CMAKE_CXX_SIMULATE_ID "")
set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "GNU")
set(CMAKE_CXX_COMPILER_APPLE_SYSROOT "")
set(CMAKE_CXX_SIMULATE_VERSION "")
set(CMAKE_CXX_COMPILER_ARCHITECTURE_ID "x86_64")
set(CMAKE_AR "/usr/bin/ar")
set(CMAKE_CXX_COMPILER_AR "/usr/bin/gcc-ar-15")
set(CMAKE_RANLIB "/usr/bin/ranlib")
set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib-15")
set(CMAKE_LINKER "/usr/bin/ld")
set(CMAKE_LINKER_LINK "")
set(CMAKE_LINKER_LLD "")
set(CMAKE_CXX_COMPILER_LINKER "/usr/bin/ld")
set(CMAKE_CXX_COMPILER_LINKER_ID "GNU")
set(CMAKE_CXX_COMPILER_LINKER_VERSION 2.46)
set(CMAKE_CXX_COMPILER_LINKER_FRONTEND_VARIANT GNU)
set(CMAKE_MT "")
set(CMAKE_TAPI "CMAKE_TAPI-NOTFOUND")
set(CMAKE_COMPILER_IS_GNUCXX 1)
set(CMAKE_CXX_COMPILER_LOADED 1)
set(CMAKE_CXX_COMPILER_WORKS TRUE)
set(CMAKE_CXX_ABI_COMPILED TRUE)
set(CMAKE_CXX_COMPILER_ENV_VAR "CXX")
set(CMAKE_CXX_COMPILER_ID_RUN 1)
set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm;ccm;cxxm;c++m)
set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC)
foreach (lang IN ITEMS C OBJC OBJCXX)
if (CMAKE_${lang}_COMPILER_ID_RUN)
foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS)
list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension})
endforeach()
endif()
endforeach()
set(CMAKE_CXX_LINKER_PREFERENCE 30)
set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1)
set(CMAKE_CXX_LINKER_DEPFILE_SUPPORTED TRUE)
set(CMAKE_LINKER_PUSHPOP_STATE_SUPPORTED TRUE)
set(CMAKE_CXX_LINKER_PUSHPOP_STATE_SUPPORTED TRUE)
# Save compiler ABI information.
set(CMAKE_CXX_SIZEOF_DATA_PTR "8")
set(CMAKE_CXX_COMPILER_ABI "ELF")
set(CMAKE_CXX_BYTE_ORDER "LITTLE_ENDIAN")
set(CMAKE_CXX_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
if(CMAKE_CXX_SIZEOF_DATA_PTR)
set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}")
endif()
if(CMAKE_CXX_COMPILER_ABI)
set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}")
endif()
if(CMAKE_CXX_LIBRARY_ARCHITECTURE)
set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
endif()
set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "")
if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX)
set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}")
endif()
set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/usr/include/c++/15;/usr/include/x86_64-linux-gnu/c++/15;/usr/include/c++/15/backward;/usr/lib/gcc/x86_64-linux-gnu/15/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include")
set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc")
set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/15;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib")
set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
set(CMAKE_CXX_COMPILER_CLANG_RESOURCE_DIR "")
set(CMAKE_CXX_COMPILER_IMPORT_STD "")
set(CMAKE_CXX_COMPILER_IMPORT_STD_ERROR_MESSAGE "Unsupported generator: Unix Makefiles")
set(CMAKE_CXX_STDLIB_MODULES_JSON "")
Binary file not shown.
+15
View File
@@ -0,0 +1,15 @@
set(CMAKE_HOST_SYSTEM "Linux-7.0.0-22-generic")
set(CMAKE_HOST_SYSTEM_NAME "Linux")
set(CMAKE_HOST_SYSTEM_VERSION "7.0.0-22-generic")
set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64")
set(CMAKE_SYSTEM "Linux-7.0.0-22-generic")
set(CMAKE_SYSTEM_NAME "Linux")
set(CMAKE_SYSTEM_VERSION "7.0.0-22-generic")
set(CMAKE_SYSTEM_PROCESSOR "x86_64")
set(CMAKE_CROSSCOMPILING "FALSE")
set(CMAKE_SYSTEM_LOADED 1)
@@ -0,0 +1,949 @@
/* This source file must have a .cpp extension so that all C++ compilers
recognize the extension without flags. Borland does not know .cxx for
example. */
#ifndef __cplusplus
# error "A C compiler has been selected for C++."
#endif
#if !defined(__has_include)
/* If the compiler does not have __has_include, pretend the answer is
always no. */
# define __has_include(x) 0
#endif
/* Version number components: V=Version, R=Revision, P=Patch
Version date components: YYYY=Year, MM=Month, DD=Day */
#if defined(__INTEL_COMPILER) || defined(__ICC)
# define COMPILER_ID "Intel"
# if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
# endif
# if defined(__GNUC__)
# define SIMULATE_ID "GNU"
# endif
/* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later,
except that a few beta releases use the old format with V=2021. */
# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
# if defined(__INTEL_COMPILER_UPDATE)
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
# else
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)
# endif
# else
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER)
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE)
/* The third version component from --version is an update index,
but no macro is provided for it. */
# define COMPILER_VERSION_PATCH DEC(0)
# endif
# if defined(__INTEL_COMPILER_BUILD_DATE)
/* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
# endif
# if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
# endif
# if defined(__GNUC__)
# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
# elif defined(__GNUG__)
# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
# endif
# if defined(__GNUC_MINOR__)
# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
# endif
# if defined(__GNUC_PATCHLEVEL__)
# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
# endif
#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER)
# define COMPILER_ID "IntelLLVM"
#if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
#endif
#if defined(__GNUC__)
# define SIMULATE_ID "GNU"
#endif
/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and
* later. Look for 6 digit vs. 8 digit version number to decide encoding.
* VVVV is no smaller than the current year when a version is released.
*/
#if __INTEL_LLVM_COMPILER < 1000000L
# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100)
# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10)
#else
# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000)
# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100)
# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100)
#endif
#if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
#endif
#if defined(__GNUC__)
# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
#elif defined(__GNUG__)
# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
#endif
#if defined(__GNUC_MINOR__)
# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
#endif
#if defined(__GNUC_PATCHLEVEL__)
# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
#endif
#elif defined(__PATHCC__)
# define COMPILER_ID "PathScale"
# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
# if defined(__PATHCC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
# endif
#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
# define COMPILER_ID "Embarcadero"
# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF)
#elif defined(__BORLANDC__)
# define COMPILER_ID "Borland"
/* __BORLANDC__ = 0xVRR */
# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
# define COMPILER_ID "Watcom"
/* __WATCOMC__ = VVRR */
# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
# if (__WATCOMC__ % 10) > 0
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
# endif
#elif defined(__WATCOMC__)
# define COMPILER_ID "OpenWatcom"
/* __WATCOMC__ = VVRP + 1100 */
# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
# if (__WATCOMC__ % 10) > 0
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
# endif
#elif defined(__SUNPRO_CC)
# define COMPILER_ID "SunPro"
# if __SUNPRO_CC >= 0x5100
/* __SUNPRO_CC = 0xVRRP */
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12)
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF)
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF)
# else
/* __SUNPRO_CC = 0xVRP */
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8)
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF)
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF)
# endif
#elif defined(__HP_aCC)
# define COMPILER_ID "HP"
/* __HP_aCC = VVRRPP */
# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000)
# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100)
# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100)
#elif defined(__DECCXX)
# define COMPILER_ID "Compaq"
/* __DECCXX_VER = VVRRTPPPP */
# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000)
# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100)
# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000)
#elif defined(__IBMCPP__) && defined(__COMPILER_VER__)
# define COMPILER_ID "zOS"
/* __IBMCPP__ = VRP */
# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
#elif defined(__open_xl__) && defined(__clang__)
# define COMPILER_ID "IBMClang"
# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__)
# define COMPILER_VERSION_MINOR DEC(__open_xl_release__)
# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__)
# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__)
# define COMPILER_VERSION_INTERNAL_STR __clang_version__
#elif defined(__ibmxl__) && defined(__clang__)
# define COMPILER_ID "XLClang"
# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800
# define COMPILER_ID "XL"
/* __IBMCPP__ = VRP */
# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800
# define COMPILER_ID "VisualAge"
/* __IBMCPP__ = VRP */
# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
#elif defined(__NVCOMPILER)
# define COMPILER_ID "NVHPC"
# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__)
# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__)
# if defined(__NVCOMPILER_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__)
# endif
#elif defined(__PGI)
# define COMPILER_ID "PGI"
# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
# if defined(__PGIC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
# endif
#elif defined(__clang__) && defined(__cray__)
# define COMPILER_ID "CrayClang"
# define COMPILER_VERSION_MAJOR DEC(__cray_major__)
# define COMPILER_VERSION_MINOR DEC(__cray_minor__)
# define COMPILER_VERSION_PATCH DEC(__cray_patchlevel__)
# define COMPILER_VERSION_INTERNAL_STR __clang_version__
#elif defined(_CRAYC)
# define COMPILER_ID "Cray"
# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
#elif defined(__TI_COMPILER_VERSION__)
# define COMPILER_ID "TI"
/* __TI_COMPILER_VERSION__ = VVVRRRPPP */
# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000)
# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000)
#elif defined(__CLANG_FUJITSU)
# define COMPILER_ID "FujitsuClang"
# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
# define COMPILER_VERSION_INTERNAL_STR __clang_version__
#elif defined(__FUJITSU)
# define COMPILER_ID "Fujitsu"
# if defined(__FCC_version__)
# define COMPILER_VERSION __FCC_version__
# elif defined(__FCC_major__)
# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
# endif
# if defined(__fcc_version)
# define COMPILER_VERSION_INTERNAL DEC(__fcc_version)
# elif defined(__FCC_VERSION)
# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION)
# endif
#elif defined(__ghs__)
# define COMPILER_ID "GHS"
/* __GHS_VERSION_NUMBER = VVVVRP */
# ifdef __GHS_VERSION_NUMBER
# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)
# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)
# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10)
# endif
#elif defined(__TASKING__)
# define COMPILER_ID "Tasking"
# define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000)
# define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100)
# define COMPILER_VERSION_INTERNAL DEC(__VERSION__)
#elif defined(__ORANGEC__)
# define COMPILER_ID "OrangeC"
# define COMPILER_VERSION_MAJOR DEC(__ORANGEC_MAJOR__)
# define COMPILER_VERSION_MINOR DEC(__ORANGEC_MINOR__)
# define COMPILER_VERSION_PATCH DEC(__ORANGEC_PATCHLEVEL__)
#elif defined(__RENESAS__)
# define COMPILER_ID "Renesas"
/* __RENESAS_VERSION__ = 0xVVRRPP00 */
# define COMPILER_VERSION_MAJOR HEX(__RENESAS_VERSION__ >> 24 & 0xFF)
# define COMPILER_VERSION_MINOR HEX(__RENESAS_VERSION__ >> 16 & 0xFF)
# define COMPILER_VERSION_PATCH HEX(__RENESAS_VERSION__ >> 8 & 0xFF)
#elif defined(__SCO_VERSION__)
# define COMPILER_ID "SCO"
#elif defined(__ARMCC_VERSION) && !defined(__clang__)
# define COMPILER_ID "ARMCC"
#if __ARMCC_VERSION >= 1000000
/* __ARMCC_VERSION = VRRPPPP */
# define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
# define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
# define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
#else
/* __ARMCC_VERSION = VRPPPP */
# define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
# define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
# define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
#endif
#elif defined(__clang__) && defined(__apple_build_version__)
# define COMPILER_ID "AppleClang"
# if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
# endif
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
# if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
# endif
# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)
# define COMPILER_ID "ARMClang"
# define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000)
# define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100)
# define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION/100 % 100)
# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION)
#elif defined(__clang__) && defined(__ti__)
# define COMPILER_ID "TIClang"
# define COMPILER_VERSION_MAJOR DEC(__ti_major__)
# define COMPILER_VERSION_MINOR DEC(__ti_minor__)
# define COMPILER_VERSION_PATCH DEC(__ti_patchlevel__)
# define COMPILER_VERSION_INTERNAL DEC(__ti_version__)
#elif defined(__clang__)
# define COMPILER_ID "Clang"
# if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
# endif
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
# if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
# endif
#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__))
# define COMPILER_ID "LCC"
# define COMPILER_VERSION_MAJOR DEC(__LCC__ / 100)
# define COMPILER_VERSION_MINOR DEC(__LCC__ % 100)
# if defined(__LCC_MINOR__)
# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__)
# endif
# if defined(__GNUC__) && defined(__GNUC_MINOR__)
# define SIMULATE_ID "GNU"
# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
# if defined(__GNUC_PATCHLEVEL__)
# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
# endif
# endif
#elif defined(__GNUC__) || defined(__GNUG__)
# define COMPILER_ID "GNU"
# if defined(__GNUC__)
# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
# else
# define COMPILER_VERSION_MAJOR DEC(__GNUG__)
# endif
# if defined(__GNUC_MINOR__)
# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
# endif
# if defined(__GNUC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
# endif
#elif defined(_MSC_VER)
# define COMPILER_ID "MSVC"
/* _MSC_VER = VVRR */
# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
# if defined(_MSC_FULL_VER)
# if _MSC_VER >= 1400
/* _MSC_FULL_VER = VVRRPPPPP */
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
# else
/* _MSC_FULL_VER = VVRRPPPP */
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
# endif
# endif
# if defined(_MSC_BUILD)
# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
# endif
#elif defined(_ADI_COMPILER)
# define COMPILER_ID "ADSP"
#if defined(__VERSIONNUM__)
/* __VERSIONNUM__ = 0xVVRRPPTT */
# define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF)
# define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF)
# define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF)
# define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF)
#endif
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
# define COMPILER_ID "IAR"
# if defined(__VER__) && defined(__ICCARM__)
# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__))
# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)
# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100))
# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)
# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
# endif
#elif defined(__DCC__) && defined(_DIAB_TOOL)
# define COMPILER_ID "Diab"
# define COMPILER_VERSION_MAJOR DEC(__VERSION_MAJOR_NUMBER__)
# define COMPILER_VERSION_MINOR DEC(__VERSION_MINOR_NUMBER__)
# define COMPILER_VERSION_PATCH DEC(__VERSION_ARCH_FEATURE_NUMBER__)
# define COMPILER_VERSION_TWEAK DEC(__VERSION_BUG_FIX_NUMBER__)
/* These compilers are either not known or too old to define an
identification macro. Try to identify the platform and guess that
it is the native compiler. */
#elif defined(__hpux) || defined(__hpua)
# define COMPILER_ID "HP"
#else /* unknown compiler */
# define COMPILER_ID ""
#endif
/* Construct the string literal in pieces to prevent the source from
getting matched. Store it in a pointer rather than an array
because some compilers will just produce instructions to fill the
array rather than assigning a pointer to a static array. */
char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
#ifdef SIMULATE_ID
char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
#endif
#ifdef __QNXNTO__
char const* qnxnto = "INFO" ":" "qnxnto[]";
#endif
#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
#endif
#define STRINGIFY_HELPER(X) #X
#define STRINGIFY(X) STRINGIFY_HELPER(X)
/* Identify known platforms by name. */
#if defined(__linux) || defined(__linux__) || defined(linux)
# define PLATFORM_ID "Linux"
#elif defined(__MSYS__)
# define PLATFORM_ID "MSYS"
#elif defined(__CYGWIN__)
# define PLATFORM_ID "Cygwin"
#elif defined(__MINGW32__)
# define PLATFORM_ID "MinGW"
#elif defined(__APPLE__)
# define PLATFORM_ID "Darwin"
#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
# define PLATFORM_ID "Windows"
#elif defined(__FreeBSD__) || defined(__FreeBSD)
# define PLATFORM_ID "FreeBSD"
#elif defined(__NetBSD__) || defined(__NetBSD)
# define PLATFORM_ID "NetBSD"
#elif defined(__OpenBSD__) || defined(__OPENBSD)
# define PLATFORM_ID "OpenBSD"
#elif defined(__sun) || defined(sun)
# define PLATFORM_ID "SunOS"
#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
# define PLATFORM_ID "AIX"
#elif defined(__hpux) || defined(__hpux__)
# define PLATFORM_ID "HP-UX"
#elif defined(__HAIKU__)
# define PLATFORM_ID "Haiku"
#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
# define PLATFORM_ID "BeOS"
#elif defined(__QNX__) || defined(__QNXNTO__)
# define PLATFORM_ID "QNX"
#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
# define PLATFORM_ID "Tru64"
#elif defined(__riscos) || defined(__riscos__)
# define PLATFORM_ID "RISCos"
#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
# define PLATFORM_ID "SINIX"
#elif defined(__UNIX_SV__)
# define PLATFORM_ID "UNIX_SV"
#elif defined(__bsdos__)
# define PLATFORM_ID "BSDOS"
#elif defined(_MPRAS) || defined(MPRAS)
# define PLATFORM_ID "MP-RAS"
#elif defined(__osf) || defined(__osf__)
# define PLATFORM_ID "OSF1"
#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
# define PLATFORM_ID "SCO_SV"
#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
# define PLATFORM_ID "ULTRIX"
#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
# define PLATFORM_ID "Xenix"
#elif defined(__WATCOMC__)
# if defined(__LINUX__)
# define PLATFORM_ID "Linux"
# elif defined(__DOS__)
# define PLATFORM_ID "DOS"
# elif defined(__OS2__)
# define PLATFORM_ID "OS2"
# elif defined(__WINDOWS__)
# define PLATFORM_ID "Windows3x"
# elif defined(__VXWORKS__)
# define PLATFORM_ID "VxWorks"
# else /* unknown platform */
# define PLATFORM_ID
# endif
#elif defined(__INTEGRITY)
# if defined(INT_178B)
# define PLATFORM_ID "Integrity178"
# else /* regular Integrity */
# define PLATFORM_ID "Integrity"
# endif
# elif defined(_ADI_COMPILER)
# define PLATFORM_ID "ADSP"
#else /* unknown platform */
# define PLATFORM_ID
#endif
/* For windows compilers MSVC and Intel we can determine
the architecture of the compiler being used. This is because
the compilers do not have flags that can change the architecture,
but rather depend on which compiler is being used
*/
#if defined(_WIN32) && defined(_MSC_VER)
# if defined(_M_IA64)
# define ARCHITECTURE_ID "IA64"
# elif defined(_M_ARM64EC)
# define ARCHITECTURE_ID "ARM64EC"
# elif defined(_M_X64) || defined(_M_AMD64)
# define ARCHITECTURE_ID "x64"
# elif defined(_M_IX86)
# define ARCHITECTURE_ID "X86"
# elif defined(_M_ARM64)
# define ARCHITECTURE_ID "ARM64"
# elif defined(_M_ARM)
# if _M_ARM == 4
# define ARCHITECTURE_ID "ARMV4I"
# elif _M_ARM == 5
# define ARCHITECTURE_ID "ARMV5I"
# else
# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
# endif
# elif defined(_M_MIPS)
# define ARCHITECTURE_ID "MIPS"
# elif defined(_M_SH)
# define ARCHITECTURE_ID "SHx"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__WATCOMC__)
# if defined(_M_I86)
# define ARCHITECTURE_ID "I86"
# elif defined(_M_IX86)
# define ARCHITECTURE_ID "X86"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
# if defined(__ICCARM__)
# define ARCHITECTURE_ID "ARM"
# elif defined(__ICCRX__)
# define ARCHITECTURE_ID "RX"
# elif defined(__ICCRH850__)
# define ARCHITECTURE_ID "RH850"
# elif defined(__ICCRL78__)
# define ARCHITECTURE_ID "RL78"
# elif defined(__ICCRISCV__)
# define ARCHITECTURE_ID "RISCV"
# elif defined(__ICCAVR__)
# define ARCHITECTURE_ID "AVR"
# elif defined(__ICC430__)
# define ARCHITECTURE_ID "MSP430"
# elif defined(__ICCV850__)
# define ARCHITECTURE_ID "V850"
# elif defined(__ICC8051__)
# define ARCHITECTURE_ID "8051"
# elif defined(__ICCSTM8__)
# define ARCHITECTURE_ID "STM8"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__ghs__)
# if defined(__PPC64__)
# define ARCHITECTURE_ID "PPC64"
# elif defined(__ppc__)
# define ARCHITECTURE_ID "PPC"
# elif defined(__ARM__)
# define ARCHITECTURE_ID "ARM"
# elif defined(__x86_64__)
# define ARCHITECTURE_ID "x64"
# elif defined(__i386__)
# define ARCHITECTURE_ID "X86"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__clang__) && defined(__ti__)
# if defined(__ARM_ARCH)
# define ARCHITECTURE_ID "ARM"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__TI_COMPILER_VERSION__)
# if defined(__TI_ARM__)
# define ARCHITECTURE_ID "ARM"
# elif defined(__MSP430__)
# define ARCHITECTURE_ID "MSP430"
# elif defined(__TMS320C28XX__)
# define ARCHITECTURE_ID "TMS320C28x"
# elif defined(__TMS320C6X__) || defined(_TMS320C6X)
# define ARCHITECTURE_ID "TMS320C6x"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
# elif defined(__ADSPSHARC__)
# define ARCHITECTURE_ID "SHARC"
# elif defined(__ADSPBLACKFIN__)
# define ARCHITECTURE_ID "Blackfin"
#elif defined(__TASKING__)
# if defined(__CTC__) || defined(__CPTC__)
# define ARCHITECTURE_ID "TriCore"
# elif defined(__CMCS__)
# define ARCHITECTURE_ID "MCS"
# elif defined(__CARM__) || defined(__CPARM__)
# define ARCHITECTURE_ID "ARM"
# elif defined(__CARC__)
# define ARCHITECTURE_ID "ARC"
# elif defined(__C51__)
# define ARCHITECTURE_ID "8051"
# elif defined(__CPCP__)
# define ARCHITECTURE_ID "PCP"
# else
# define ARCHITECTURE_ID ""
# endif
#elif defined(__RENESAS__)
# if defined(__CCRX__)
# define ARCHITECTURE_ID "RX"
# elif defined(__CCRL__)
# define ARCHITECTURE_ID "RL78"
# elif defined(__CCRH__)
# define ARCHITECTURE_ID "RH850"
# else
# define ARCHITECTURE_ID ""
# endif
#else
# define ARCHITECTURE_ID
#endif
/* Convert integer to decimal digit literals. */
#define DEC(n) \
('0' + (((n) / 10000000)%10)), \
('0' + (((n) / 1000000)%10)), \
('0' + (((n) / 100000)%10)), \
('0' + (((n) / 10000)%10)), \
('0' + (((n) / 1000)%10)), \
('0' + (((n) / 100)%10)), \
('0' + (((n) / 10)%10)), \
('0' + ((n) % 10))
/* Convert integer to hex digit literals. */
#define HEX(n) \
('0' + ((n)>>28 & 0xF)), \
('0' + ((n)>>24 & 0xF)), \
('0' + ((n)>>20 & 0xF)), \
('0' + ((n)>>16 & 0xF)), \
('0' + ((n)>>12 & 0xF)), \
('0' + ((n)>>8 & 0xF)), \
('0' + ((n)>>4 & 0xF)), \
('0' + ((n) & 0xF))
/* Construct a string literal encoding the version number. */
#ifdef COMPILER_VERSION
char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]";
/* Construct a string literal encoding the version number components. */
#elif defined(COMPILER_VERSION_MAJOR)
char const info_version[] = {
'I', 'N', 'F', 'O', ':',
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
COMPILER_VERSION_MAJOR,
# ifdef COMPILER_VERSION_MINOR
'.', COMPILER_VERSION_MINOR,
# ifdef COMPILER_VERSION_PATCH
'.', COMPILER_VERSION_PATCH,
# ifdef COMPILER_VERSION_TWEAK
'.', COMPILER_VERSION_TWEAK,
# endif
# endif
# endif
']','\0'};
#endif
/* Construct a string literal encoding the internal version number. */
#ifdef COMPILER_VERSION_INTERNAL
char const info_version_internal[] = {
'I', 'N', 'F', 'O', ':',
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
'i','n','t','e','r','n','a','l','[',
COMPILER_VERSION_INTERNAL,']','\0'};
#elif defined(COMPILER_VERSION_INTERNAL_STR)
char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]";
#endif
/* Construct a string literal encoding the version number components. */
#ifdef SIMULATE_VERSION_MAJOR
char const info_simulate_version[] = {
'I', 'N', 'F', 'O', ':',
's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
SIMULATE_VERSION_MAJOR,
# ifdef SIMULATE_VERSION_MINOR
'.', SIMULATE_VERSION_MINOR,
# ifdef SIMULATE_VERSION_PATCH
'.', SIMULATE_VERSION_PATCH,
# ifdef SIMULATE_VERSION_TWEAK
'.', SIMULATE_VERSION_TWEAK,
# endif
# endif
# endif
']','\0'};
#endif
/* Construct the string literal in pieces to prevent the source from
getting matched. Store it in a pointer rather than an array
because some compilers will just produce instructions to fill the
array rather than assigning a pointer to a static array. */
char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
#define CXX_STD_98 199711L
#define CXX_STD_11 201103L
#define CXX_STD_14 201402L
#define CXX_STD_17 201703L
#define CXX_STD_20 202002L
#define CXX_STD_23 202302L
#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG)
# if _MSVC_LANG > CXX_STD_17
# define CXX_STD _MSVC_LANG
# elif _MSVC_LANG == CXX_STD_17 && defined(__cpp_aggregate_paren_init)
# define CXX_STD CXX_STD_20
# elif _MSVC_LANG > CXX_STD_14 && __cplusplus > CXX_STD_17
# define CXX_STD CXX_STD_20
# elif _MSVC_LANG > CXX_STD_14
# define CXX_STD CXX_STD_17
# elif defined(__INTEL_CXX11_MODE__) && defined(__cpp_aggregate_nsdmi)
# define CXX_STD CXX_STD_14
# elif defined(__INTEL_CXX11_MODE__)
# define CXX_STD CXX_STD_11
# else
# define CXX_STD CXX_STD_98
# endif
#elif defined(_MSC_VER) && defined(_MSVC_LANG)
# if _MSVC_LANG > __cplusplus
# define CXX_STD _MSVC_LANG
# else
# define CXX_STD __cplusplus
# endif
#elif defined(__NVCOMPILER)
# if __cplusplus == CXX_STD_17 && defined(__cpp_aggregate_paren_init)
# define CXX_STD CXX_STD_20
# else
# define CXX_STD __cplusplus
# endif
#elif defined(__INTEL_COMPILER) || defined(__PGI)
# if __cplusplus == CXX_STD_11 && defined(__cpp_namespace_attributes)
# define CXX_STD CXX_STD_17
# elif __cplusplus == CXX_STD_11 && defined(__cpp_aggregate_nsdmi)
# define CXX_STD CXX_STD_14
# else
# define CXX_STD __cplusplus
# endif
#elif (defined(__IBMCPP__) || defined(__ibmxl__)) && defined(__linux__)
# if __cplusplus == CXX_STD_11 && defined(__cpp_aggregate_nsdmi)
# define CXX_STD CXX_STD_14
# else
# define CXX_STD __cplusplus
# endif
#elif __cplusplus == 1 && defined(__GXX_EXPERIMENTAL_CXX0X__)
# define CXX_STD CXX_STD_11
#else
# define CXX_STD __cplusplus
#endif
const char* info_language_standard_default = "INFO" ":" "standard_default["
#if CXX_STD > CXX_STD_23
"26"
#elif CXX_STD > CXX_STD_20
"23"
#elif CXX_STD > CXX_STD_17
"20"
#elif CXX_STD > CXX_STD_14
"17"
#elif CXX_STD > CXX_STD_11
"14"
#elif CXX_STD >= CXX_STD_11
"11"
#else
"98"
#endif
"]";
const char* info_language_extensions_default = "INFO" ":" "extensions_default["
#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \
defined(__TI_COMPILER_VERSION__) || defined(__RENESAS__)) && \
!defined(__STRICT_ANSI__)
"ON"
#else
"OFF"
#endif
"]";
/*--------------------------------------------------------------------------*/
int main(int argc, char* argv[])
{
int require = 0;
require += info_compiler[argc];
require += info_platform[argc];
require += info_arch[argc];
#ifdef COMPILER_VERSION_MAJOR
require += info_version[argc];
#endif
#if defined(COMPILER_VERSION_INTERNAL) || defined(COMPILER_VERSION_INTERNAL_STR)
require += info_version_internal[argc];
#endif
#ifdef SIMULATE_ID
require += info_simulate[argc];
#endif
#ifdef SIMULATE_VERSION_MAJOR
require += info_simulate_version[argc];
#endif
#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
require += info_cray[argc];
#endif
require += info_language_standard_default[argc];
require += info_language_extensions_default[argc];
(void)argv;
return require;
}
Binary file not shown.
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,16 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 4.3
# Relative path conversion top directories.
set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/oplabs/projects/oplabs-lv2-plugins")
set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/oplabs/projects/oplabs-lv2-plugins/build")
# Force unix paths in dependencies.
set(CMAKE_FORCE_UNIX_PATHS 1)
# The C and CXX include file regular expressions for this directory.
set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})
+8
View File
@@ -0,0 +1,8 @@
{
"InstallScripts" :
[
"/home/oplabs/projects/oplabs-lv2-plugins/build/cmake_install.cmake",
"/home/oplabs/projects/oplabs-lv2-plugins/build/src/cmake_install.cmake"
],
"Parallel" : false
}
+54
View File
@@ -0,0 +1,54 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 4.3
# The generator used is:
set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles")
# The top level Makefile was generated from the following files:
set(CMAKE_MAKEFILE_DEPENDS
"CMakeCache.txt"
"/home/oplabs/.hermes/hermes-agent/venv/lib/python3.11/site-packages/cmake/data/share/cmake-4.3/Modules/CMakeCXXInformation.cmake"
"/home/oplabs/.hermes/hermes-agent/venv/lib/python3.11/site-packages/cmake/data/share/cmake-4.3/Modules/CMakeCommonLanguageInclude.cmake"
"/home/oplabs/.hermes/hermes-agent/venv/lib/python3.11/site-packages/cmake/data/share/cmake-4.3/Modules/CMakeGenericSystem.cmake"
"/home/oplabs/.hermes/hermes-agent/venv/lib/python3.11/site-packages/cmake/data/share/cmake-4.3/Modules/CMakeInitializeConfigs.cmake"
"/home/oplabs/.hermes/hermes-agent/venv/lib/python3.11/site-packages/cmake/data/share/cmake-4.3/Modules/CMakeLanguageInformation.cmake"
"/home/oplabs/.hermes/hermes-agent/venv/lib/python3.11/site-packages/cmake/data/share/cmake-4.3/Modules/CMakeSystemSpecificInformation.cmake"
"/home/oplabs/.hermes/hermes-agent/venv/lib/python3.11/site-packages/cmake/data/share/cmake-4.3/Modules/CMakeSystemSpecificInitialize.cmake"
"/home/oplabs/.hermes/hermes-agent/venv/lib/python3.11/site-packages/cmake/data/share/cmake-4.3/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
"/home/oplabs/.hermes/hermes-agent/venv/lib/python3.11/site-packages/cmake/data/share/cmake-4.3/Modules/Compiler/GNU-CXX.cmake"
"/home/oplabs/.hermes/hermes-agent/venv/lib/python3.11/site-packages/cmake/data/share/cmake-4.3/Modules/Compiler/GNU.cmake"
"/home/oplabs/.hermes/hermes-agent/venv/lib/python3.11/site-packages/cmake/data/share/cmake-4.3/Modules/Internal/CMakeCXXLinkerInformation.cmake"
"/home/oplabs/.hermes/hermes-agent/venv/lib/python3.11/site-packages/cmake/data/share/cmake-4.3/Modules/Internal/CMakeCommonLinkerInformation.cmake"
"/home/oplabs/.hermes/hermes-agent/venv/lib/python3.11/site-packages/cmake/data/share/cmake-4.3/Modules/Linker/GNU-CXX.cmake"
"/home/oplabs/.hermes/hermes-agent/venv/lib/python3.11/site-packages/cmake/data/share/cmake-4.3/Modules/Linker/GNU.cmake"
"/home/oplabs/.hermes/hermes-agent/venv/lib/python3.11/site-packages/cmake/data/share/cmake-4.3/Modules/Platform/Linker/GNU.cmake"
"/home/oplabs/.hermes/hermes-agent/venv/lib/python3.11/site-packages/cmake/data/share/cmake-4.3/Modules/Platform/Linker/Linux-GNU-CXX.cmake"
"/home/oplabs/.hermes/hermes-agent/venv/lib/python3.11/site-packages/cmake/data/share/cmake-4.3/Modules/Platform/Linker/Linux-GNU.cmake"
"/home/oplabs/.hermes/hermes-agent/venv/lib/python3.11/site-packages/cmake/data/share/cmake-4.3/Modules/Platform/Linux-GNU-CXX.cmake"
"/home/oplabs/.hermes/hermes-agent/venv/lib/python3.11/site-packages/cmake/data/share/cmake-4.3/Modules/Platform/Linux-GNU.cmake"
"/home/oplabs/.hermes/hermes-agent/venv/lib/python3.11/site-packages/cmake/data/share/cmake-4.3/Modules/Platform/Linux-Initialize.cmake"
"/home/oplabs/.hermes/hermes-agent/venv/lib/python3.11/site-packages/cmake/data/share/cmake-4.3/Modules/Platform/Linux.cmake"
"/home/oplabs/.hermes/hermes-agent/venv/lib/python3.11/site-packages/cmake/data/share/cmake-4.3/Modules/Platform/UnixPaths.cmake"
"/home/oplabs/projects/oplabs-lv2-plugins/CMakeLists.txt"
"CMakeFiles/4.3.4/CMakeCXXCompiler.cmake"
"CMakeFiles/4.3.4/CMakeSystem.cmake"
"/home/oplabs/projects/oplabs-lv2-plugins/src/CMakeLists.txt"
)
# The corresponding makefile is:
set(CMAKE_MAKEFILE_OUTPUTS
"Makefile"
"CMakeFiles/cmake.check_cache"
)
# Byproducts of CMake generate step:
set(CMAKE_MAKEFILE_PRODUCTS
"CMakeFiles/CMakeDirectoryInformation.cmake"
"src/CMakeFiles/CMakeDirectoryInformation.cmake"
)
# Dependency information for all targets:
set(CMAKE_DEPEND_INFO_FILES
"src/CMakeFiles/OPLabsBandChannel.dir/DependInfo.cmake"
"src/CMakeFiles/OPLabsBandBus.dir/DependInfo.cmake"
)
+176
View File
@@ -0,0 +1,176 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 4.3
# Default target executed when no arguments are given to make.
default_target: all
.PHONY : default_target
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Disable VCS-based implicit rules.
% : %,v
# Disable VCS-based implicit rules.
% : RCS/%
# Disable VCS-based implicit rules.
% : RCS/%,v
# Disable VCS-based implicit rules.
% : SCCS/s.%
# Disable VCS-based implicit rules.
% : s.%
.SUFFIXES: .hpux_make_needs_suffix_list
# Command-line flag to silence nested $(MAKE).
$(VERBOSE)MAKESILENT = -s
#Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /home/oplabs/.hermes/hermes-agent/venv/lib/python3.11/site-packages/cmake/data/bin/cmake
# The command to remove a file.
RM = /home/oplabs/.hermes/hermes-agent/venv/lib/python3.11/site-packages/cmake/data/bin/cmake -E rm -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/oplabs/projects/oplabs-lv2-plugins
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/oplabs/projects/oplabs-lv2-plugins/build
#=============================================================================
# Directory level rules for the build root directory
# The main recursive "all" target.
all: src/all
.PHONY : all
# The main recursive "codegen" target.
codegen: src/codegen
.PHONY : codegen
# The main recursive "preinstall" target.
preinstall: src/preinstall
.PHONY : preinstall
# The main recursive "clean" target.
clean: src/clean
.PHONY : clean
#=============================================================================
# Directory level rules for directory src
# Recursive "all" directory target.
src/all: src/CMakeFiles/OPLabsBandChannel.dir/all
src/all: src/CMakeFiles/OPLabsBandBus.dir/all
.PHONY : src/all
# Recursive "codegen" directory target.
src/codegen: src/CMakeFiles/OPLabsBandChannel.dir/codegen
src/codegen: src/CMakeFiles/OPLabsBandBus.dir/codegen
.PHONY : src/codegen
# Recursive "preinstall" directory target.
src/preinstall:
.PHONY : src/preinstall
# Recursive "clean" directory target.
src/clean: src/CMakeFiles/OPLabsBandChannel.dir/clean
src/clean: src/CMakeFiles/OPLabsBandBus.dir/clean
.PHONY : src/clean
#=============================================================================
# Target rules for target src/CMakeFiles/OPLabsBandChannel.dir
# All Build rule for target.
src/CMakeFiles/OPLabsBandChannel.dir/all:
$(MAKE) $(MAKESILENT) -f src/CMakeFiles/OPLabsBandChannel.dir/build.make src/CMakeFiles/OPLabsBandChannel.dir/depend
$(MAKE) $(MAKESILENT) -f src/CMakeFiles/OPLabsBandChannel.dir/build.make src/CMakeFiles/OPLabsBandChannel.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/oplabs/projects/oplabs-lv2-plugins/build/CMakeFiles --progress-num=3,4 "Built target OPLabsBandChannel"
.PHONY : src/CMakeFiles/OPLabsBandChannel.dir/all
# Build rule for subdir invocation for target.
src/CMakeFiles/OPLabsBandChannel.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/oplabs/projects/oplabs-lv2-plugins/build/CMakeFiles 2
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 src/CMakeFiles/OPLabsBandChannel.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/oplabs/projects/oplabs-lv2-plugins/build/CMakeFiles 0
.PHONY : src/CMakeFiles/OPLabsBandChannel.dir/rule
# Convenience name for target.
OPLabsBandChannel: src/CMakeFiles/OPLabsBandChannel.dir/rule
.PHONY : OPLabsBandChannel
# codegen rule for target.
src/CMakeFiles/OPLabsBandChannel.dir/codegen:
$(MAKE) $(MAKESILENT) -f src/CMakeFiles/OPLabsBandChannel.dir/build.make src/CMakeFiles/OPLabsBandChannel.dir/codegen
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/oplabs/projects/oplabs-lv2-plugins/build/CMakeFiles --progress-num=3,4 "Finished codegen for target OPLabsBandChannel"
.PHONY : src/CMakeFiles/OPLabsBandChannel.dir/codegen
# clean rule for target.
src/CMakeFiles/OPLabsBandChannel.dir/clean:
$(MAKE) $(MAKESILENT) -f src/CMakeFiles/OPLabsBandChannel.dir/build.make src/CMakeFiles/OPLabsBandChannel.dir/clean
.PHONY : src/CMakeFiles/OPLabsBandChannel.dir/clean
#=============================================================================
# Target rules for target src/CMakeFiles/OPLabsBandBus.dir
# All Build rule for target.
src/CMakeFiles/OPLabsBandBus.dir/all:
$(MAKE) $(MAKESILENT) -f src/CMakeFiles/OPLabsBandBus.dir/build.make src/CMakeFiles/OPLabsBandBus.dir/depend
$(MAKE) $(MAKESILENT) -f src/CMakeFiles/OPLabsBandBus.dir/build.make src/CMakeFiles/OPLabsBandBus.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/oplabs/projects/oplabs-lv2-plugins/build/CMakeFiles --progress-num=1,2 "Built target OPLabsBandBus"
.PHONY : src/CMakeFiles/OPLabsBandBus.dir/all
# Build rule for subdir invocation for target.
src/CMakeFiles/OPLabsBandBus.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/oplabs/projects/oplabs-lv2-plugins/build/CMakeFiles 2
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 src/CMakeFiles/OPLabsBandBus.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/oplabs/projects/oplabs-lv2-plugins/build/CMakeFiles 0
.PHONY : src/CMakeFiles/OPLabsBandBus.dir/rule
# Convenience name for target.
OPLabsBandBus: src/CMakeFiles/OPLabsBandBus.dir/rule
.PHONY : OPLabsBandBus
# codegen rule for target.
src/CMakeFiles/OPLabsBandBus.dir/codegen:
$(MAKE) $(MAKESILENT) -f src/CMakeFiles/OPLabsBandBus.dir/build.make src/CMakeFiles/OPLabsBandBus.dir/codegen
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/oplabs/projects/oplabs-lv2-plugins/build/CMakeFiles --progress-num=1,2 "Finished codegen for target OPLabsBandBus"
.PHONY : src/CMakeFiles/OPLabsBandBus.dir/codegen
# clean rule for target.
src/CMakeFiles/OPLabsBandBus.dir/clean:
$(MAKE) $(MAKESILENT) -f src/CMakeFiles/OPLabsBandBus.dir/build.make src/CMakeFiles/OPLabsBandBus.dir/clean
.PHONY : src/CMakeFiles/OPLabsBandBus.dir/clean
#=============================================================================
# Special targets to cleanup operation of make.
# Special rule to run CMake to check the build system integrity.
# No rule that depends on this can have commands that come from listfiles
# because they might be regenerated.
cmake_check_build_system:
$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
.PHONY : cmake_check_build_system
+6
View File
@@ -0,0 +1,6 @@
/home/oplabs/projects/oplabs-lv2-plugins/build/CMakeFiles/edit_cache.dir
/home/oplabs/projects/oplabs-lv2-plugins/build/CMakeFiles/rebuild_cache.dir
/home/oplabs/projects/oplabs-lv2-plugins/build/src/CMakeFiles/OPLabsBandChannel.dir
/home/oplabs/projects/oplabs-lv2-plugins/build/src/CMakeFiles/OPLabsBandBus.dir
/home/oplabs/projects/oplabs-lv2-plugins/build/src/CMakeFiles/edit_cache.dir
/home/oplabs/projects/oplabs-lv2-plugins/build/src/CMakeFiles/rebuild_cache.dir
+1
View File
@@ -0,0 +1 @@
# This file is generated by cmake for dependency checking of the CMakeCache.txt file
+1
View File
@@ -0,0 +1 @@
4
+168
View File
@@ -0,0 +1,168 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 4.3
# Default target executed when no arguments are given to make.
default_target: all
.PHONY : default_target
# Allow only one "make -f Makefile2" at a time, but pass parallelism.
.NOTPARALLEL:
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Disable VCS-based implicit rules.
% : %,v
# Disable VCS-based implicit rules.
% : RCS/%
# Disable VCS-based implicit rules.
% : RCS/%,v
# Disable VCS-based implicit rules.
% : SCCS/s.%
# Disable VCS-based implicit rules.
% : s.%
.SUFFIXES: .hpux_make_needs_suffix_list
# Command-line flag to silence nested $(MAKE).
$(VERBOSE)MAKESILENT = -s
#Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /home/oplabs/.hermes/hermes-agent/venv/lib/python3.11/site-packages/cmake/data/bin/cmake
# The command to remove a file.
RM = /home/oplabs/.hermes/hermes-agent/venv/lib/python3.11/site-packages/cmake/data/bin/cmake -E rm -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/oplabs/projects/oplabs-lv2-plugins
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/oplabs/projects/oplabs-lv2-plugins/build
#=============================================================================
# Targets provided globally by CMake.
# Special rule for the target edit_cache
edit_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "No interactive CMake dialog available..."
/home/oplabs/.hermes/hermes-agent/venv/lib/python3.11/site-packages/cmake/data/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available.
.PHONY : edit_cache
# Special rule for the target edit_cache
edit_cache/fast: edit_cache
.PHONY : edit_cache/fast
# Special rule for the target rebuild_cache
rebuild_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake to regenerate build system..."
/home/oplabs/.hermes/hermes-agent/venv/lib/python3.11/site-packages/cmake/data/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
.PHONY : rebuild_cache
# Special rule for the target rebuild_cache
rebuild_cache/fast: rebuild_cache
.PHONY : rebuild_cache/fast
# The main all target
all: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/oplabs/projects/oplabs-lv2-plugins/build/CMakeFiles /home/oplabs/projects/oplabs-lv2-plugins/build//CMakeFiles/progress.marks
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 all
$(CMAKE_COMMAND) -E cmake_progress_start /home/oplabs/projects/oplabs-lv2-plugins/build/CMakeFiles 0
.PHONY : all
# The main clean target
clean:
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 clean
.PHONY : clean
# The main clean target
clean/fast: clean
.PHONY : clean/fast
# Prepare targets for installation.
preinstall: all
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall
.PHONY : preinstall
# Prepare targets for installation.
preinstall/fast:
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall
.PHONY : preinstall/fast
# clear depends
depend:
$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
.PHONY : depend
#=============================================================================
# Target rules for targets named OPLabsBandChannel
# Build rule for target.
OPLabsBandChannel: cmake_check_build_system
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 OPLabsBandChannel
.PHONY : OPLabsBandChannel
# fast build rule for target.
OPLabsBandChannel/fast:
$(MAKE) $(MAKESILENT) -f src/CMakeFiles/OPLabsBandChannel.dir/build.make src/CMakeFiles/OPLabsBandChannel.dir/build
.PHONY : OPLabsBandChannel/fast
#=============================================================================
# Target rules for targets named OPLabsBandBus
# Build rule for target.
OPLabsBandBus: cmake_check_build_system
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 OPLabsBandBus
.PHONY : OPLabsBandBus
# fast build rule for target.
OPLabsBandBus/fast:
$(MAKE) $(MAKESILENT) -f src/CMakeFiles/OPLabsBandBus.dir/build.make src/CMakeFiles/OPLabsBandBus.dir/build
.PHONY : OPLabsBandBus/fast
# Help Target
help:
@echo "The following are some of the valid targets for this Makefile:"
@echo "... all (the default if no target is provided)"
@echo "... clean"
@echo "... depend"
@echo "... edit_cache"
@echo "... rebuild_cache"
@echo "... OPLabsBandBus"
@echo "... OPLabsBandChannel"
.PHONY : help
#=============================================================================
# Special targets to cleanup operation of make.
# Special rule to run CMake to check the build system integrity.
# No rule that depends on this can have commands that come from listfiles
# because they might be regenerated.
cmake_check_build_system:
$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
.PHONY : cmake_check_build_system
+71
View File
@@ -0,0 +1,71 @@
# Install script for directory: /home/oplabs/projects/oplabs-lv2-plugins
# Set the install prefix
if(NOT DEFINED CMAKE_INSTALL_PREFIX)
set(CMAKE_INSTALL_PREFIX "/usr/local")
endif()
string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
# Set the install configuration name.
if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
if(BUILD_TYPE)
string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
else()
set(CMAKE_INSTALL_CONFIG_NAME "Release")
endif()
message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
endif()
# Set the component getting installed.
if(NOT CMAKE_INSTALL_COMPONENT)
if(COMPONENT)
message(STATUS "Install component: \"${COMPONENT}\"")
set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
else()
set(CMAKE_INSTALL_COMPONENT)
endif()
endif()
# Install shared libraries without execute permission?
if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
set(CMAKE_INSTALL_SO_NO_EXE "1")
endif()
# Is this installation the result of a crosscompile?
if(NOT DEFINED CMAKE_CROSSCOMPILING)
set(CMAKE_CROSSCOMPILING "FALSE")
endif()
# Set path to fallback-tool for dependency-resolution.
if(NOT DEFINED CMAKE_OBJDUMP)
set(CMAKE_OBJDUMP "/usr/bin/objdump")
endif()
if(NOT CMAKE_INSTALL_LOCAL_ONLY)
# Include the install script for the subdirectory.
include("/home/oplabs/projects/oplabs-lv2-plugins/build/src/cmake_install.cmake")
endif()
string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
"${CMAKE_INSTALL_MANIFEST_FILES}")
if(CMAKE_INSTALL_LOCAL_ONLY)
file(WRITE "/home/oplabs/projects/oplabs-lv2-plugins/build/install_local_manifest.txt"
"${CMAKE_INSTALL_MANIFEST_CONTENT}")
endif()
if(CMAKE_INSTALL_COMPONENT)
if(CMAKE_INSTALL_COMPONENT MATCHES "^[a-zA-Z0-9_.+-]+$")
set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
else()
string(MD5 CMAKE_INST_COMP_HASH "${CMAKE_INSTALL_COMPONENT}")
set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INST_COMP_HASH}.txt")
unset(CMAKE_INST_COMP_HASH)
endif()
else()
set(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
endif()
if(NOT CMAKE_INSTALL_LOCAL_ONLY)
file(WRITE "/home/oplabs/projects/oplabs-lv2-plugins/build/${CMAKE_INSTALL_MANIFEST}"
"${CMAKE_INSTALL_MANIFEST_CONTENT}")
endif()
View File
@@ -0,0 +1,16 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 4.3
# Relative path conversion top directories.
set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/oplabs/projects/oplabs-lv2-plugins")
set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/oplabs/projects/oplabs-lv2-plugins/build")
# Force unix paths in dependencies.
set(CMAKE_FORCE_UNIX_PATHS 1)
# The C and CXX include file regular expressions for this directory.
set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})
@@ -0,0 +1,24 @@
# Consider dependencies only in project.
set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF)
# The set of languages for which implicit dependencies are needed:
set(CMAKE_DEPENDS_LANGUAGES
)
# The set of dependency files which are needed:
set(CMAKE_DEPENDS_DEPENDENCY_FILES
"/home/oplabs/projects/oplabs-lv2-plugins/src/OPLabsBandBus.cpp" "src/CMakeFiles/OPLabsBandBus.dir/OPLabsBandBus.cpp.o" "gcc" "src/CMakeFiles/OPLabsBandBus.dir/OPLabsBandBus.cpp.o.d"
"" "/home/oplabs/projects/oplabs-lv2-plugins/lv2/OPLabsBandBus.lv2/OPLabsBandBus.so" "gcc" "src/CMakeFiles/OPLabsBandBus.dir/link.d"
)
# Targets to which this target links which contain Fortran sources.
set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES
)
# Targets to which this target links which contain Fortran sources.
set(CMAKE_Fortran_TARGET_FORWARD_LINKED_INFO_FILES
)
# Fortran module output directory.
set(CMAKE_Fortran_TARGET_MODULE_DIR "")
@@ -0,0 +1,135 @@
src/CMakeFiles/OPLabsBandBus.dir/OPLabsBandBus.cpp.o: \
/home/oplabs/projects/oplabs-lv2-plugins/src/OPLabsBandBus.cpp \
/usr/include/stdc-predef.h \
/home/oplabs/projects/oplabs-lv2-plugins/src/OPLabsBandBus.hpp \
/usr/include/lv2/core/lv2.h \
/usr/lib/gcc/x86_64-linux-gnu/15/include/stdint.h /usr/include/stdint.h \
/usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
/usr/include/features.h /usr/include/features-time64.h \
/usr/include/x86_64-linux-gnu/bits/wordsize.h \
/usr/include/x86_64-linux-gnu/bits/timesize.h \
/usr/include/x86_64-linux-gnu/sys/cdefs.h \
/usr/include/x86_64-linux-gnu/bits/long-double.h \
/usr/include/x86_64-linux-gnu/gnu/stubs.h \
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
/usr/include/x86_64-linux-gnu/bits/types.h \
/usr/include/x86_64-linux-gnu/bits/typesizes.h \
/usr/include/x86_64-linux-gnu/bits/time64.h \
/usr/include/x86_64-linux-gnu/bits/wchar.h \
/usr/include/x86_64-linux-gnu/bits/stdint-intn.h \
/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \
/usr/include/x86_64-linux-gnu/bits/stdint-least.h \
/usr/include/lv2/state/state.h \
/usr/lib/gcc/x86_64-linux-gnu/15/include/stddef.h \
/usr/include/lv2/urid/urid.h /usr/include/c++/15/cstdint \
/usr/include/x86_64-linux-gnu/c++/15/bits/c++config.h \
/usr/include/x86_64-linux-gnu/c++/15/bits/os_defines.h \
/usr/include/x86_64-linux-gnu/c++/15/bits/cpu_defines.h \
/usr/include/c++/15/pstl/pstl_config.h /usr/include/c++/15/cmath \
/usr/include/c++/15/bits/requires_hosted.h \
/usr/include/c++/15/bits/cpp_type_traits.h \
/usr/include/c++/15/bits/version.h /usr/include/c++/15/type_traits \
/usr/include/c++/15/ext/type_traits.h /usr/include/math.h \
/usr/include/x86_64-linux-gnu/bits/math-vector.h \
/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
/usr/include/x86_64-linux-gnu/bits/floatn.h \
/usr/include/x86_64-linux-gnu/bits/floatn-common.h \
/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
/usr/include/x86_64-linux-gnu/bits/fp-logb.h \
/usr/include/x86_64-linux-gnu/bits/fp-fast.h \
/usr/include/x86_64-linux-gnu/bits/mathcalls-macros.h \
/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
/usr/include/x86_64-linux-gnu/bits/mathcalls.h \
/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \
/usr/include/x86_64-linux-gnu/bits/iscanonical.h \
/usr/include/c++/15/bits/std_abs.h /usr/include/stdlib.h \
/usr/include/x86_64-linux-gnu/bits/waitflags.h \
/usr/include/x86_64-linux-gnu/bits/waitstatus.h \
/usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
/usr/include/x86_64-linux-gnu/sys/types.h \
/usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
/usr/include/x86_64-linux-gnu/bits/types/time_t.h \
/usr/include/x86_64-linux-gnu/bits/types/timer_t.h /usr/include/endian.h \
/usr/include/x86_64-linux-gnu/bits/endian.h \
/usr/include/x86_64-linux-gnu/bits/endianness.h \
/usr/include/x86_64-linux-gnu/bits/byteswap.h \
/usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
/usr/include/x86_64-linux-gnu/sys/select.h \
/usr/include/x86_64-linux-gnu/bits/select.h \
/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
/usr/include/x86_64-linux-gnu/bits/select2.h \
/usr/include/x86_64-linux-gnu/bits/select-decl.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \
/usr/include/x86_64-linux-gnu/bits/struct_mutex.h \
/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
/usr/include/x86_64-linux-gnu/bits/stdlib.h \
/usr/include/c++/15/bits/specfun.h \
/usr/include/c++/15/bits/stl_algobase.h \
/usr/include/c++/15/bits/functexcept.h \
/usr/include/c++/15/bits/exception_defines.h \
/usr/include/c++/15/ext/numeric_traits.h \
/usr/include/c++/15/bits/stl_pair.h /usr/include/c++/15/bits/move.h \
/usr/include/c++/15/bits/utility.h /usr/include/c++/15/compare \
/usr/include/c++/15/concepts \
/usr/include/c++/15/bits/stl_iterator_base_types.h \
/usr/include/c++/15/bits/iterator_concepts.h \
/usr/include/c++/15/bits/ptr_traits.h \
/usr/include/c++/15/bits/ranges_cmp.h \
/usr/include/c++/15/bits/stl_iterator_base_funcs.h \
/usr/include/c++/15/bits/concept_check.h \
/usr/include/c++/15/debug/assertions.h \
/usr/include/c++/15/bits/stl_iterator.h /usr/include/c++/15/new \
/usr/include/c++/15/bits/exception.h \
/usr/include/c++/15/bits/stl_construct.h \
/usr/include/c++/15/debug/debug.h \
/usr/include/c++/15/bits/predefined_ops.h /usr/include/c++/15/bit \
/usr/include/c++/15/limits /usr/include/c++/15/tr1/gamma.tcc \
/usr/include/c++/15/tr1/special_function_util.h \
/usr/include/c++/15/tr1/bessel_function.tcc \
/usr/include/c++/15/tr1/beta_function.tcc \
/usr/include/c++/15/tr1/ell_integral.tcc \
/usr/include/c++/15/tr1/exp_integral.tcc \
/usr/include/c++/15/tr1/hypergeometric.tcc \
/usr/include/c++/15/tr1/legendre_function.tcc \
/usr/include/c++/15/tr1/modified_bessel_func.tcc \
/usr/include/c++/15/tr1/poly_hermite.tcc \
/usr/include/c++/15/tr1/poly_laguerre.tcc \
/usr/include/c++/15/tr1/riemann_zeta.tcc /usr/include/c++/15/cstring \
/usr/include/string.h /usr/include/strings.h \
/usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
/usr/include/x86_64-linux-gnu/bits/string_fortified.h \
/usr/include/c++/15/cstdio /usr/include/stdio.h \
/usr/lib/gcc/x86_64-linux-gnu/15/include/stdarg.h \
/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
/usr/include/x86_64-linux-gnu/bits/stdio2-decl.h \
/usr/include/x86_64-linux-gnu/bits/stdio.h \
/usr/include/x86_64-linux-gnu/bits/stdio2.h \
/usr/include/c++/15/algorithm /usr/include/c++/15/bits/stl_algo.h \
/usr/include/c++/15/bits/algorithmfwd.h \
/usr/include/c++/15/initializer_list /usr/include/c++/15/bits/stl_heap.h \
/usr/include/c++/15/bits/uniform_int_dist.h \
/usr/include/c++/15/bits/stl_tempbuf.h /usr/include/c++/15/cstdlib \
/usr/include/c++/15/bits/ranges_algo.h \
/usr/include/c++/15/bits/ranges_algobase.h \
/usr/include/c++/15/bits/ranges_base.h \
/usr/include/c++/15/bits/max_size_type.h /usr/include/c++/15/numbers \
/usr/include/c++/15/bits/invoke.h /usr/include/c++/15/bits/ranges_util.h \
/usr/include/c++/15/pstl/glue_algorithm_defs.h \
/usr/include/c++/15/pstl/execution_defs.h
@@ -0,0 +1,114 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 4.3
# Delete rule output on recipe failure.
.DELETE_ON_ERROR:
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Disable VCS-based implicit rules.
% : %,v
# Disable VCS-based implicit rules.
% : RCS/%
# Disable VCS-based implicit rules.
% : RCS/%,v
# Disable VCS-based implicit rules.
% : SCCS/s.%
# Disable VCS-based implicit rules.
% : s.%
.SUFFIXES: .hpux_make_needs_suffix_list
# Command-line flag to silence nested $(MAKE).
$(VERBOSE)MAKESILENT = -s
#Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /home/oplabs/.hermes/hermes-agent/venv/lib/python3.11/site-packages/cmake/data/bin/cmake
# The command to remove a file.
RM = /home/oplabs/.hermes/hermes-agent/venv/lib/python3.11/site-packages/cmake/data/bin/cmake -E rm -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/oplabs/projects/oplabs-lv2-plugins
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/oplabs/projects/oplabs-lv2-plugins/build
# Include any dependencies generated for this target.
include src/CMakeFiles/OPLabsBandBus.dir/depend.make
# Include any dependencies generated by the compiler for this target.
include src/CMakeFiles/OPLabsBandBus.dir/compiler_depend.make
# Include the progress variables for this target.
include src/CMakeFiles/OPLabsBandBus.dir/progress.make
# Include the compile flags for this target's objects.
include src/CMakeFiles/OPLabsBandBus.dir/flags.make
src/CMakeFiles/OPLabsBandBus.dir/codegen:
.PHONY : src/CMakeFiles/OPLabsBandBus.dir/codegen
src/CMakeFiles/OPLabsBandBus.dir/OPLabsBandBus.cpp.o: src/CMakeFiles/OPLabsBandBus.dir/flags.make
src/CMakeFiles/OPLabsBandBus.dir/OPLabsBandBus.cpp.o: /home/oplabs/projects/oplabs-lv2-plugins/src/OPLabsBandBus.cpp
src/CMakeFiles/OPLabsBandBus.dir/OPLabsBandBus.cpp.o: src/CMakeFiles/OPLabsBandBus.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/oplabs/projects/oplabs-lv2-plugins/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object src/CMakeFiles/OPLabsBandBus.dir/OPLabsBandBus.cpp.o"
cd /home/oplabs/projects/oplabs-lv2-plugins/build/src && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT src/CMakeFiles/OPLabsBandBus.dir/OPLabsBandBus.cpp.o -MF CMakeFiles/OPLabsBandBus.dir/OPLabsBandBus.cpp.o.d -o CMakeFiles/OPLabsBandBus.dir/OPLabsBandBus.cpp.o -c /home/oplabs/projects/oplabs-lv2-plugins/src/OPLabsBandBus.cpp
src/CMakeFiles/OPLabsBandBus.dir/OPLabsBandBus.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/OPLabsBandBus.dir/OPLabsBandBus.cpp.i"
cd /home/oplabs/projects/oplabs-lv2-plugins/build/src && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/oplabs/projects/oplabs-lv2-plugins/src/OPLabsBandBus.cpp > CMakeFiles/OPLabsBandBus.dir/OPLabsBandBus.cpp.i
src/CMakeFiles/OPLabsBandBus.dir/OPLabsBandBus.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/OPLabsBandBus.dir/OPLabsBandBus.cpp.s"
cd /home/oplabs/projects/oplabs-lv2-plugins/build/src && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/oplabs/projects/oplabs-lv2-plugins/src/OPLabsBandBus.cpp -o CMakeFiles/OPLabsBandBus.dir/OPLabsBandBus.cpp.s
# Object files for target OPLabsBandBus
OPLabsBandBus_OBJECTS = \
"CMakeFiles/OPLabsBandBus.dir/OPLabsBandBus.cpp.o"
# External object files for target OPLabsBandBus
OPLabsBandBus_EXTERNAL_OBJECTS =
/home/oplabs/projects/oplabs-lv2-plugins/lv2/OPLabsBandBus.lv2/OPLabsBandBus.so: src/CMakeFiles/OPLabsBandBus.dir/OPLabsBandBus.cpp.o
/home/oplabs/projects/oplabs-lv2-plugins/lv2/OPLabsBandBus.lv2/OPLabsBandBus.so: src/CMakeFiles/OPLabsBandBus.dir/build.make
/home/oplabs/projects/oplabs-lv2-plugins/lv2/OPLabsBandBus.lv2/OPLabsBandBus.so: src/CMakeFiles/OPLabsBandBus.dir/compiler_depend.ts
/home/oplabs/projects/oplabs-lv2-plugins/lv2/OPLabsBandBus.lv2/OPLabsBandBus.so: src/CMakeFiles/OPLabsBandBus.dir/link.txt
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --bold --progress-dir=/home/oplabs/projects/oplabs-lv2-plugins/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX shared library /home/oplabs/projects/oplabs-lv2-plugins/lv2/OPLabsBandBus.lv2/OPLabsBandBus.so"
cd /home/oplabs/projects/oplabs-lv2-plugins/build/src && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/OPLabsBandBus.dir/link.txt --verbose=$(VERBOSE)
# Rule to build all files generated by this target.
src/CMakeFiles/OPLabsBandBus.dir/build: /home/oplabs/projects/oplabs-lv2-plugins/lv2/OPLabsBandBus.lv2/OPLabsBandBus.so
.PHONY : src/CMakeFiles/OPLabsBandBus.dir/build
src/CMakeFiles/OPLabsBandBus.dir/clean:
cd /home/oplabs/projects/oplabs-lv2-plugins/build/src && $(CMAKE_COMMAND) -P CMakeFiles/OPLabsBandBus.dir/cmake_clean.cmake
.PHONY : src/CMakeFiles/OPLabsBandBus.dir/clean
src/CMakeFiles/OPLabsBandBus.dir/depend:
cd /home/oplabs/projects/oplabs-lv2-plugins/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/oplabs/projects/oplabs-lv2-plugins /home/oplabs/projects/oplabs-lv2-plugins/src /home/oplabs/projects/oplabs-lv2-plugins/build /home/oplabs/projects/oplabs-lv2-plugins/build/src /home/oplabs/projects/oplabs-lv2-plugins/build/src/CMakeFiles/OPLabsBandBus.dir/DependInfo.cmake "--color=$(COLOR)" OPLabsBandBus
.PHONY : src/CMakeFiles/OPLabsBandBus.dir/depend
@@ -0,0 +1,12 @@
file(REMOVE_RECURSE
"CMakeFiles/OPLabsBandBus.dir/link.d"
"/home/oplabs/projects/oplabs-lv2-plugins/lv2/OPLabsBandBus.lv2/OPLabsBandBus.pdb"
"/home/oplabs/projects/oplabs-lv2-plugins/lv2/OPLabsBandBus.lv2/OPLabsBandBus.so"
"CMakeFiles/OPLabsBandBus.dir/OPLabsBandBus.cpp.o"
"CMakeFiles/OPLabsBandBus.dir/OPLabsBandBus.cpp.o.d"
)
# Per-language clean rules from dependency scanning.
foreach(lang CXX)
include(CMakeFiles/OPLabsBandBus.dir/cmake_clean_${lang}.cmake OPTIONAL)
endforeach()
@@ -0,0 +1,180 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 4.3
/home/oplabs/projects/oplabs-lv2-plugins/lv2/OPLabsBandBus.lv2/OPLabsBandBus.so
/home/oplabs/projects/oplabs-lv2-plugins/src/OPLabsBandBus.version
/lib64/ld-linux-x86-64.so.2
/usr/lib/x86_64-linux-gnu/crti.o
/usr/lib/x86_64-linux-gnu/crtn.o
/usr/lib/x86_64-linux-gnu/libc.so
/usr/lib/x86_64-linux-gnu/libgcc_s.so.1
/usr/lib/x86_64-linux-gnu/libm.so
/usr/lib/gcc/x86_64-linux-gnu/15/crtbeginS.o
/usr/lib/gcc/x86_64-linux-gnu/15/crtendS.o
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc.a
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so
/usr/lib/gcc/x86_64-linux-gnu/15/libstdc++.so
/usr/lib/x86_64-linux-gnu/libc.so.6
/usr/lib/x86_64-linux-gnu/libc_nonshared.a
/usr/lib/x86_64-linux-gnu/libm.so.6
/usr/lib/x86_64-linux-gnu/libmvec.so.1
/home/oplabs/projects/oplabs-lv2-plugins/build/src/CMakeFiles/OPLabsBandBus.dir/OPLabsBandBus.cpp.o
src/CMakeFiles/OPLabsBandBus.dir/OPLabsBandBus.cpp.o
/home/oplabs/projects/oplabs-lv2-plugins/src/OPLabsBandBus.cpp
/home/oplabs/projects/oplabs-lv2-plugins/src/OPLabsBandBus.hpp
/usr/include/alloca.h
/usr/include/c++/15/algorithm
/usr/include/c++/15/bit
/usr/include/c++/15/bits/algorithmfwd.h
/usr/include/c++/15/bits/concept_check.h
/usr/include/c++/15/bits/cpp_type_traits.h
/usr/include/c++/15/bits/exception.h
/usr/include/c++/15/bits/exception_defines.h
/usr/include/c++/15/bits/functexcept.h
/usr/include/c++/15/bits/invoke.h
/usr/include/c++/15/bits/iterator_concepts.h
/usr/include/c++/15/bits/max_size_type.h
/usr/include/c++/15/bits/move.h
/usr/include/c++/15/bits/predefined_ops.h
/usr/include/c++/15/bits/ptr_traits.h
/usr/include/c++/15/bits/ranges_algo.h
/usr/include/c++/15/bits/ranges_algobase.h
/usr/include/c++/15/bits/ranges_base.h
/usr/include/c++/15/bits/ranges_cmp.h
/usr/include/c++/15/bits/ranges_util.h
/usr/include/c++/15/bits/requires_hosted.h
/usr/include/c++/15/bits/specfun.h
/usr/include/c++/15/bits/std_abs.h
/usr/include/c++/15/bits/stl_algo.h
/usr/include/c++/15/bits/stl_algobase.h
/usr/include/c++/15/bits/stl_construct.h
/usr/include/c++/15/bits/stl_heap.h
/usr/include/c++/15/bits/stl_iterator.h
/usr/include/c++/15/bits/stl_iterator_base_funcs.h
/usr/include/c++/15/bits/stl_iterator_base_types.h
/usr/include/c++/15/bits/stl_pair.h
/usr/include/c++/15/bits/stl_tempbuf.h
/usr/include/c++/15/bits/uniform_int_dist.h
/usr/include/c++/15/bits/utility.h
/usr/include/c++/15/bits/version.h
/usr/include/c++/15/cmath
/usr/include/c++/15/compare
/usr/include/c++/15/concepts
/usr/include/c++/15/cstdint
/usr/include/c++/15/cstdio
/usr/include/c++/15/cstdlib
/usr/include/c++/15/cstring
/usr/include/c++/15/debug/assertions.h
/usr/include/c++/15/debug/debug.h
/usr/include/c++/15/ext/numeric_traits.h
/usr/include/c++/15/ext/type_traits.h
/usr/include/c++/15/initializer_list
/usr/include/c++/15/limits
/usr/include/c++/15/new
/usr/include/c++/15/numbers
/usr/include/c++/15/pstl/execution_defs.h
/usr/include/c++/15/pstl/glue_algorithm_defs.h
/usr/include/c++/15/pstl/pstl_config.h
/usr/include/c++/15/tr1/bessel_function.tcc
/usr/include/c++/15/tr1/beta_function.tcc
/usr/include/c++/15/tr1/ell_integral.tcc
/usr/include/c++/15/tr1/exp_integral.tcc
/usr/include/c++/15/tr1/gamma.tcc
/usr/include/c++/15/tr1/hypergeometric.tcc
/usr/include/c++/15/tr1/legendre_function.tcc
/usr/include/c++/15/tr1/modified_bessel_func.tcc
/usr/include/c++/15/tr1/poly_hermite.tcc
/usr/include/c++/15/tr1/poly_laguerre.tcc
/usr/include/c++/15/tr1/riemann_zeta.tcc
/usr/include/c++/15/tr1/special_function_util.h
/usr/include/c++/15/type_traits
/usr/include/endian.h
/usr/include/features-time64.h
/usr/include/features.h
/usr/include/lv2/core/lv2.h
/usr/include/lv2/state/state.h
/usr/include/lv2/urid/urid.h
/usr/include/math.h
/usr/include/stdc-predef.h
/usr/include/stdint.h
/usr/include/stdio.h
/usr/include/stdlib.h
/usr/include/string.h
/usr/include/strings.h
/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h
/usr/include/x86_64-linux-gnu/bits/byteswap.h
/usr/include/x86_64-linux-gnu/bits/endian.h
/usr/include/x86_64-linux-gnu/bits/endianness.h
/usr/include/x86_64-linux-gnu/bits/floatn-common.h
/usr/include/x86_64-linux-gnu/bits/floatn.h
/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h
/usr/include/x86_64-linux-gnu/bits/fp-fast.h
/usr/include/x86_64-linux-gnu/bits/fp-logb.h
/usr/include/x86_64-linux-gnu/bits/iscanonical.h
/usr/include/x86_64-linux-gnu/bits/libc-header-start.h
/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h
/usr/include/x86_64-linux-gnu/bits/long-double.h
/usr/include/x86_64-linux-gnu/bits/math-vector.h
/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h
/usr/include/x86_64-linux-gnu/bits/mathcalls-macros.h
/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h
/usr/include/x86_64-linux-gnu/bits/mathcalls.h
/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h
/usr/include/x86_64-linux-gnu/bits/select-decl.h
/usr/include/x86_64-linux-gnu/bits/select.h
/usr/include/x86_64-linux-gnu/bits/select2.h
/usr/include/x86_64-linux-gnu/bits/stdint-intn.h
/usr/include/x86_64-linux-gnu/bits/stdint-least.h
/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h
/usr/include/x86_64-linux-gnu/bits/stdio.h
/usr/include/x86_64-linux-gnu/bits/stdio2-decl.h
/usr/include/x86_64-linux-gnu/bits/stdio2.h
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h
/usr/include/x86_64-linux-gnu/bits/stdlib.h
/usr/include/x86_64-linux-gnu/bits/string_fortified.h
/usr/include/x86_64-linux-gnu/bits/strings_fortified.h
/usr/include/x86_64-linux-gnu/bits/struct_mutex.h
/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h
/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h
/usr/include/x86_64-linux-gnu/bits/time64.h
/usr/include/x86_64-linux-gnu/bits/timesize.h
/usr/include/x86_64-linux-gnu/bits/types.h
/usr/include/x86_64-linux-gnu/bits/types/FILE.h
/usr/include/x86_64-linux-gnu/bits/types/__FILE.h
/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h
/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h
/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h
/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h
/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h
/usr/include/x86_64-linux-gnu/bits/types/clock_t.h
/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h
/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h
/usr/include/x86_64-linux-gnu/bits/types/locale_t.h
/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h
/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h
/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h
/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h
/usr/include/x86_64-linux-gnu/bits/types/time_t.h
/usr/include/x86_64-linux-gnu/bits/types/timer_t.h
/usr/include/x86_64-linux-gnu/bits/typesizes.h
/usr/include/x86_64-linux-gnu/bits/uintn-identity.h
/usr/include/x86_64-linux-gnu/bits/waitflags.h
/usr/include/x86_64-linux-gnu/bits/waitstatus.h
/usr/include/x86_64-linux-gnu/bits/wchar.h
/usr/include/x86_64-linux-gnu/bits/wordsize.h
/usr/include/x86_64-linux-gnu/c++/15/bits/c++config.h
/usr/include/x86_64-linux-gnu/c++/15/bits/cpu_defines.h
/usr/include/x86_64-linux-gnu/c++/15/bits/os_defines.h
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h
/usr/include/x86_64-linux-gnu/gnu/stubs.h
/usr/include/x86_64-linux-gnu/sys/cdefs.h
/usr/include/x86_64-linux-gnu/sys/select.h
/usr/include/x86_64-linux-gnu/sys/types.h
/usr/lib/gcc/x86_64-linux-gnu/15/include/stdarg.h
/usr/lib/gcc/x86_64-linux-gnu/15/include/stddef.h
/usr/lib/gcc/x86_64-linux-gnu/15/include/stdint.h
@@ -0,0 +1,524 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 4.3
/home/oplabs/projects/oplabs-lv2-plugins/lv2/OPLabsBandBus.lv2/OPLabsBandBus.so: /home/oplabs/projects/oplabs-lv2-plugins/src/OPLabsBandBus.version \
/lib64/ld-linux-x86-64.so.2 \
/usr/lib/x86_64-linux-gnu/crti.o \
/usr/lib/x86_64-linux-gnu/crtn.o \
/usr/lib/x86_64-linux-gnu/libc.so \
/usr/lib/x86_64-linux-gnu/libgcc_s.so.1 \
/usr/lib/x86_64-linux-gnu/libm.so \
/usr/lib/gcc/x86_64-linux-gnu/15/crtbeginS.o \
/usr/lib/gcc/x86_64-linux-gnu/15/crtendS.o \
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc.a \
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so \
/usr/lib/gcc/x86_64-linux-gnu/15/libstdc++.so \
/usr/lib/x86_64-linux-gnu/libc.so.6 \
/usr/lib/x86_64-linux-gnu/libc_nonshared.a \
/usr/lib/x86_64-linux-gnu/libm.so.6 \
/usr/lib/x86_64-linux-gnu/libmvec.so.1 \
src/CMakeFiles/OPLabsBandBus.dir/OPLabsBandBus.cpp.o
src/CMakeFiles/OPLabsBandBus.dir/OPLabsBandBus.cpp.o: /home/oplabs/projects/oplabs-lv2-plugins/src/OPLabsBandBus.cpp \
/home/oplabs/projects/oplabs-lv2-plugins/src/OPLabsBandBus.hpp \
/usr/include/alloca.h \
/usr/include/c++/15/algorithm \
/usr/include/c++/15/bit \
/usr/include/c++/15/bits/algorithmfwd.h \
/usr/include/c++/15/bits/concept_check.h \
/usr/include/c++/15/bits/cpp_type_traits.h \
/usr/include/c++/15/bits/exception.h \
/usr/include/c++/15/bits/exception_defines.h \
/usr/include/c++/15/bits/functexcept.h \
/usr/include/c++/15/bits/invoke.h \
/usr/include/c++/15/bits/iterator_concepts.h \
/usr/include/c++/15/bits/max_size_type.h \
/usr/include/c++/15/bits/move.h \
/usr/include/c++/15/bits/predefined_ops.h \
/usr/include/c++/15/bits/ptr_traits.h \
/usr/include/c++/15/bits/ranges_algo.h \
/usr/include/c++/15/bits/ranges_algobase.h \
/usr/include/c++/15/bits/ranges_base.h \
/usr/include/c++/15/bits/ranges_cmp.h \
/usr/include/c++/15/bits/ranges_util.h \
/usr/include/c++/15/bits/requires_hosted.h \
/usr/include/c++/15/bits/specfun.h \
/usr/include/c++/15/bits/std_abs.h \
/usr/include/c++/15/bits/stl_algo.h \
/usr/include/c++/15/bits/stl_algobase.h \
/usr/include/c++/15/bits/stl_construct.h \
/usr/include/c++/15/bits/stl_heap.h \
/usr/include/c++/15/bits/stl_iterator.h \
/usr/include/c++/15/bits/stl_iterator_base_funcs.h \
/usr/include/c++/15/bits/stl_iterator_base_types.h \
/usr/include/c++/15/bits/stl_pair.h \
/usr/include/c++/15/bits/stl_tempbuf.h \
/usr/include/c++/15/bits/uniform_int_dist.h \
/usr/include/c++/15/bits/utility.h \
/usr/include/c++/15/bits/version.h \
/usr/include/c++/15/cmath \
/usr/include/c++/15/compare \
/usr/include/c++/15/concepts \
/usr/include/c++/15/cstdint \
/usr/include/c++/15/cstdio \
/usr/include/c++/15/cstdlib \
/usr/include/c++/15/cstring \
/usr/include/c++/15/debug/assertions.h \
/usr/include/c++/15/debug/debug.h \
/usr/include/c++/15/ext/numeric_traits.h \
/usr/include/c++/15/ext/type_traits.h \
/usr/include/c++/15/initializer_list \
/usr/include/c++/15/limits \
/usr/include/c++/15/new \
/usr/include/c++/15/numbers \
/usr/include/c++/15/pstl/execution_defs.h \
/usr/include/c++/15/pstl/glue_algorithm_defs.h \
/usr/include/c++/15/pstl/pstl_config.h \
/usr/include/c++/15/tr1/bessel_function.tcc \
/usr/include/c++/15/tr1/beta_function.tcc \
/usr/include/c++/15/tr1/ell_integral.tcc \
/usr/include/c++/15/tr1/exp_integral.tcc \
/usr/include/c++/15/tr1/gamma.tcc \
/usr/include/c++/15/tr1/hypergeometric.tcc \
/usr/include/c++/15/tr1/legendre_function.tcc \
/usr/include/c++/15/tr1/modified_bessel_func.tcc \
/usr/include/c++/15/tr1/poly_hermite.tcc \
/usr/include/c++/15/tr1/poly_laguerre.tcc \
/usr/include/c++/15/tr1/riemann_zeta.tcc \
/usr/include/c++/15/tr1/special_function_util.h \
/usr/include/c++/15/type_traits \
/usr/include/endian.h \
/usr/include/features-time64.h \
/usr/include/features.h \
/usr/include/lv2/core/lv2.h \
/usr/include/lv2/state/state.h \
/usr/include/lv2/urid/urid.h \
/usr/include/math.h \
/usr/include/stdc-predef.h \
/usr/include/stdint.h \
/usr/include/stdio.h \
/usr/include/stdlib.h \
/usr/include/string.h \
/usr/include/strings.h \
/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \
/usr/include/x86_64-linux-gnu/bits/byteswap.h \
/usr/include/x86_64-linux-gnu/bits/endian.h \
/usr/include/x86_64-linux-gnu/bits/endianness.h \
/usr/include/x86_64-linux-gnu/bits/floatn-common.h \
/usr/include/x86_64-linux-gnu/bits/floatn.h \
/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
/usr/include/x86_64-linux-gnu/bits/fp-fast.h \
/usr/include/x86_64-linux-gnu/bits/fp-logb.h \
/usr/include/x86_64-linux-gnu/bits/iscanonical.h \
/usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
/usr/include/x86_64-linux-gnu/bits/long-double.h \
/usr/include/x86_64-linux-gnu/bits/math-vector.h \
/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
/usr/include/x86_64-linux-gnu/bits/mathcalls-macros.h \
/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \
/usr/include/x86_64-linux-gnu/bits/mathcalls.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
/usr/include/x86_64-linux-gnu/bits/select-decl.h \
/usr/include/x86_64-linux-gnu/bits/select.h \
/usr/include/x86_64-linux-gnu/bits/select2.h \
/usr/include/x86_64-linux-gnu/bits/stdint-intn.h \
/usr/include/x86_64-linux-gnu/bits/stdint-least.h \
/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \
/usr/include/x86_64-linux-gnu/bits/stdio.h \
/usr/include/x86_64-linux-gnu/bits/stdio2-decl.h \
/usr/include/x86_64-linux-gnu/bits/stdio2.h \
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
/usr/include/x86_64-linux-gnu/bits/stdlib.h \
/usr/include/x86_64-linux-gnu/bits/string_fortified.h \
/usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
/usr/include/x86_64-linux-gnu/bits/struct_mutex.h \
/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \
/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
/usr/include/x86_64-linux-gnu/bits/time64.h \
/usr/include/x86_64-linux-gnu/bits/timesize.h \
/usr/include/x86_64-linux-gnu/bits/types.h \
/usr/include/x86_64-linux-gnu/bits/types/FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
/usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \
/usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
/usr/include/x86_64-linux-gnu/bits/types/time_t.h \
/usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
/usr/include/x86_64-linux-gnu/bits/typesizes.h \
/usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
/usr/include/x86_64-linux-gnu/bits/waitflags.h \
/usr/include/x86_64-linux-gnu/bits/waitstatus.h \
/usr/include/x86_64-linux-gnu/bits/wchar.h \
/usr/include/x86_64-linux-gnu/bits/wordsize.h \
/usr/include/x86_64-linux-gnu/c++/15/bits/c++config.h \
/usr/include/x86_64-linux-gnu/c++/15/bits/cpu_defines.h \
/usr/include/x86_64-linux-gnu/c++/15/bits/os_defines.h \
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
/usr/include/x86_64-linux-gnu/gnu/stubs.h \
/usr/include/x86_64-linux-gnu/sys/cdefs.h \
/usr/include/x86_64-linux-gnu/sys/select.h \
/usr/include/x86_64-linux-gnu/sys/types.h \
/usr/lib/gcc/x86_64-linux-gnu/15/include/stdarg.h \
/usr/lib/gcc/x86_64-linux-gnu/15/include/stddef.h \
/usr/lib/gcc/x86_64-linux-gnu/15/include/stdint.h
/usr/lib/gcc/x86_64-linux-gnu/15/include/stddef.h:
/usr/lib/gcc/x86_64-linux-gnu/15/include/stdarg.h:
/usr/include/x86_64-linux-gnu/sys/types.h:
/usr/include/x86_64-linux-gnu/sys/cdefs.h:
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
/usr/include/x86_64-linux-gnu/c++/15/bits/c++config.h:
/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
/usr/include/x86_64-linux-gnu/bits/waitflags.h:
/usr/include/x86_64-linux-gnu/bits/typesizes.h:
/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h:
/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
/usr/include/x86_64-linux-gnu/bits/wchar.h:
/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h:
/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
/usr/include/x86_64-linux-gnu/bits/timesize.h:
/usr/include/x86_64-linux-gnu/bits/time64.h:
/usr/include/x86_64-linux-gnu/bits/struct_mutex.h:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
/usr/include/x86_64-linux-gnu/bits/stdlib.h:
/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
/usr/include/x86_64-linux-gnu/c++/15/bits/os_defines.h:
/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
/usr/lib/gcc/x86_64-linux-gnu/15/crtbeginS.o:
/usr/include/c++/15/bits/ranges_algobase.h:
/usr/include/x86_64-linux-gnu/bits/math-vector.h:
/usr/include/c++/15/bits/stl_iterator_base_types.h:
/usr/include/c++/15/bits/stl_iterator_base_funcs.h:
/usr/include/c++/15/bits/utility.h:
/usr/include/x86_64-linux-gnu/bits/select-decl.h:
/usr/include/c++/15/bits/std_abs.h:
/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
/usr/include/c++/15/bits/specfun.h:
/usr/lib/x86_64-linux-gnu/libc.so.6:
/usr/include/c++/15/pstl/pstl_config.h:
/usr/include/x86_64-linux-gnu/bits/floatn.h:
/usr/include/c++/15/bits/ranges_util.h:
/usr/include/stdlib.h:
/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
/usr/include/c++/15/bits/exception_defines.h:
/usr/include/c++/15/bits/predefined_ops.h:
/usr/include/c++/15/bits/move.h:
/usr/include/lv2/state/state.h:
/usr/include/c++/15/bits/stl_pair.h:
/usr/include/c++/15/compare:
/usr/include/c++/15/bits/stl_algo.h:
/usr/include/c++/15/bits/ranges_algo.h:
/usr/lib/x86_64-linux-gnu/libc_nonshared.a:
/usr/include/c++/15/bits/stl_tempbuf.h:
/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
/usr/lib/gcc/x86_64-linux-gnu/15/libstdc++.so:
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc.a:
/usr/lib/x86_64-linux-gnu/libm.so:
/usr/lib/x86_64-linux-gnu/libgcc_s.so.1:
/usr/include/x86_64-linux-gnu/gnu/stubs.h:
/usr/include/x86_64-linux-gnu/bits/endian.h:
/usr/include/c++/15/bits/stl_algobase.h:
/usr/include/c++/15/algorithm:
/usr/include/c++/15/bits/stl_iterator.h:
/usr/include/alloca.h:
/usr/lib/x86_64-linux-gnu/libc.so:
/usr/include/c++/15/debug/assertions.h:
/usr/lib/x86_64-linux-gnu/libm.so.6:
/usr/include/c++/15/type_traits:
/usr/include/c++/15/bits/stl_construct.h:
/usr/include/c++/15/bits/invoke.h:
/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so:
/usr/include/x86_64-linux-gnu/bits/endianness.h:
/usr/include/c++/15/bits/stl_heap.h:
/usr/include/c++/15/bits/ptr_traits.h:
/usr/include/c++/15/debug/debug.h:
/usr/include/c++/15/bit:
/usr/lib/x86_64-linux-gnu/crti.o:
/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
/usr/include/c++/15/tr1/ell_integral.tcc:
/usr/include/x86_64-linux-gnu/bits/byteswap.h:
/usr/include/x86_64-linux-gnu/bits/long-double.h:
/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
/lib64/ld-linux-x86-64.so.2:
/usr/include/c++/15/bits/ranges_base.h:
/usr/include/c++/15/bits/max_size_type.h:
/usr/lib/x86_64-linux-gnu/crtn.o:
/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
/usr/lib/x86_64-linux-gnu/libmvec.so.1:
/usr/include/c++/15/tr1/bessel_function.tcc:
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:
src/CMakeFiles/OPLabsBandBus.dir/OPLabsBandBus.cpp.o:
/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
/usr/include/c++/15/cstdint:
/home/oplabs/projects/oplabs-lv2-plugins/src/OPLabsBandBus.cpp:
/usr/include/x86_64-linux-gnu/c++/15/bits/cpu_defines.h:
/usr/include/c++/15/bits/ranges_cmp.h:
/usr/lib/gcc/x86_64-linux-gnu/15/crtendS.o:
/home/oplabs/projects/oplabs-lv2-plugins/src/OPLabsBandBus.hpp:
/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
/usr/include/x86_64-linux-gnu/bits/stdint-least.h:
/usr/include/c++/15/tr1/hypergeometric.tcc:
/home/oplabs/projects/oplabs-lv2-plugins/src/OPLabsBandBus.version:
/usr/include/x86_64-linux-gnu/bits/select.h:
/usr/include/c++/15/bits/version.h:
/usr/include/c++/15/bits/concept_check.h:
/usr/include/c++/15/bits/cpp_type_traits.h:
/usr/include/c++/15/bits/iterator_concepts.h:
/usr/include/x86_64-linux-gnu/bits/mathcalls-macros.h:
/usr/include/c++/15/bits/functexcept.h:
/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h:
/usr/include/c++/15/bits/requires_hosted.h:
/usr/include/c++/15/cstdlib:
/usr/include/c++/15/ext/type_traits.h:
/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h:
/usr/include/c++/15/cstring:
/usr/include/c++/15/ext/numeric_traits.h:
/usr/include/x86_64-linux-gnu/bits/wordsize.h:
/usr/include/c++/15/pstl/execution_defs.h:
/usr/include/c++/15/bits/exception.h:
/usr/include/c++/15/initializer_list:
/usr/include/c++/15/limits:
/usr/include/x86_64-linux-gnu/sys/select.h:
/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h:
/usr/include/c++/15/new:
/usr/include/c++/15/tr1/beta_function.tcc:
/usr/include/c++/15/numbers:
/usr/include/c++/15/cstdio:
/usr/include/x86_64-linux-gnu/bits/floatn-common.h:
/usr/include/c++/15/bits/algorithmfwd.h:
/usr/include/c++/15/pstl/glue_algorithm_defs.h:
/usr/include/features.h:
/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
/usr/include/c++/15/tr1/exp_integral.tcc:
/usr/include/c++/15/tr1/gamma.tcc:
/usr/include/stdint.h:
/usr/include/c++/15/tr1/modified_bessel_func.tcc:
/usr/include/c++/15/bits/uniform_int_dist.h:
/usr/include/features-time64.h:
/usr/include/c++/15/tr1/poly_laguerre.tcc:
/usr/include/c++/15/tr1/riemann_zeta.tcc:
/usr/include/c++/15/cmath:
/usr/include/endian.h:
/usr/include/c++/15/tr1/special_function_util.h:
/usr/include/lv2/core/lv2.h:
/usr/include/c++/15/tr1/poly_hermite.tcc:
/usr/include/lv2/urid/urid.h:
/usr/lib/gcc/x86_64-linux-gnu/15/include/stdint.h:
/usr/include/math.h:
/usr/include/stdc-predef.h:
/usr/include/stdio.h:
/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h:
/usr/include/strings.h:
/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
/usr/include/c++/15/tr1/legendre_function.tcc:
/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
/usr/include/x86_64-linux-gnu/bits/select2.h:
/usr/include/x86_64-linux-gnu/bits/types.h:
/usr/include/c++/15/concepts:
/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
/usr/include/string.h:
/usr/include/x86_64-linux-gnu/bits/stdio.h:
/usr/include/x86_64-linux-gnu/bits/stdio2-decl.h:
@@ -0,0 +1,2 @@
# CMAKE generated file: DO NOT EDIT!
# Timestamp file for compiler generated dependencies management for OPLabsBandBus.
@@ -0,0 +1,2 @@
# Empty dependencies file for OPLabsBandBus.
# This may be replaced when dependencies are built.
@@ -0,0 +1,10 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 4.3
# compile CXX with /usr/bin/c++
CXX_DEFINES = -DOPLabsBandBus_EXPORTS
CXX_INCLUDES =
CXX_FLAGS = -O3 -DNDEBUG -std=gnu++20 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -Wall -Wextra -Wpedantic
@@ -0,0 +1,85 @@
/home/oplabs/projects/oplabs-lv2-plugins/lv2/OPLabsBandBus.lv2/OPLabsBandBus.so: \
/home/oplabs/projects/oplabs-lv2-plugins/src/OPLabsBandBus.version \
/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/crti.o \
/usr/lib/gcc/x86_64-linux-gnu/15/crtbeginS.o \
CMakeFiles/OPLabsBandBus.dir/OPLabsBandBus.cpp.o \
/usr/lib/gcc/x86_64-linux-gnu/15/libstdc++.so \
/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libm.so \
/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libm.so \
/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libm.so \
/usr/lib/x86_64-linux-gnu/libm.so.6 \
/usr/lib/x86_64-linux-gnu/libmvec.so.1 \
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so \
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so \
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so \
/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libgcc_s.so.1 \
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc.a \
/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libc.so \
/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libc.so \
/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libc.so \
/usr/lib/x86_64-linux-gnu/libc.so.6 \
/usr/lib/x86_64-linux-gnu/libc_nonshared.a \
/lib64/ld-linux-x86-64.so.2 \
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so \
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so \
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so \
/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libgcc_s.so.1 \
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc.a \
/usr/lib/gcc/x86_64-linux-gnu/15/crtendS.o \
/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/crtn.o
/home/oplabs/projects/oplabs-lv2-plugins/src/OPLabsBandBus.version:
/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/crti.o:
/usr/lib/gcc/x86_64-linux-gnu/15/crtbeginS.o:
CMakeFiles/OPLabsBandBus.dir/OPLabsBandBus.cpp.o:
/usr/lib/gcc/x86_64-linux-gnu/15/libstdc++.so:
/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libm.so:
/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libm.so:
/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libm.so:
/usr/lib/x86_64-linux-gnu/libm.so.6:
/usr/lib/x86_64-linux-gnu/libmvec.so.1:
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so:
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so:
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so:
/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libgcc_s.so.1:
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc.a:
/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libc.so:
/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libc.so:
/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libc.so:
/usr/lib/x86_64-linux-gnu/libc.so.6:
/usr/lib/x86_64-linux-gnu/libc_nonshared.a:
/lib64/ld-linux-x86-64.so.2:
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so:
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so:
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so:
/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libgcc_s.so.1:
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc.a:
/usr/lib/gcc/x86_64-linux-gnu/15/crtendS.o:
/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/crtn.o:
@@ -0,0 +1 @@
/usr/bin/c++ -fPIC -O3 -DNDEBUG -shared -Wl,--version-script=/home/oplabs/projects/oplabs-lv2-plugins/src/OPLabsBandBus.version -Wl,-z,nodelete -Wl,--dependency-file=CMakeFiles/OPLabsBandBus.dir/link.d -Wl,-soname,OPLabsBandBus.so -o /home/oplabs/projects/oplabs-lv2-plugins/lv2/OPLabsBandBus.lv2/OPLabsBandBus.so CMakeFiles/OPLabsBandBus.dir/OPLabsBandBus.cpp.o
@@ -0,0 +1,3 @@
CMAKE_PROGRESS_1 = 1
CMAKE_PROGRESS_2 = 2
@@ -0,0 +1,24 @@
# Consider dependencies only in project.
set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF)
# The set of languages for which implicit dependencies are needed:
set(CMAKE_DEPENDS_LANGUAGES
)
# The set of dependency files which are needed:
set(CMAKE_DEPENDS_DEPENDENCY_FILES
"/home/oplabs/projects/oplabs-lv2-plugins/src/OPLabsBandChannel.cpp" "src/CMakeFiles/OPLabsBandChannel.dir/OPLabsBandChannel.cpp.o" "gcc" "src/CMakeFiles/OPLabsBandChannel.dir/OPLabsBandChannel.cpp.o.d"
"" "/home/oplabs/projects/oplabs-lv2-plugins/lv2/OPLabsBandChannel.lv2/OPLabsBandChannel.so" "gcc" "src/CMakeFiles/OPLabsBandChannel.dir/link.d"
)
# Targets to which this target links which contain Fortran sources.
set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES
)
# Targets to which this target links which contain Fortran sources.
set(CMAKE_Fortran_TARGET_FORWARD_LINKED_INFO_FILES
)
# Fortran module output directory.
set(CMAKE_Fortran_TARGET_MODULE_DIR "")
@@ -0,0 +1,136 @@
src/CMakeFiles/OPLabsBandChannel.dir/OPLabsBandChannel.cpp.o: \
/home/oplabs/projects/oplabs-lv2-plugins/src/OPLabsBandChannel.cpp \
/usr/include/stdc-predef.h \
/home/oplabs/projects/oplabs-lv2-plugins/src/OPLabsBandChannel.hpp \
/usr/include/lv2/core/lv2.h \
/usr/lib/gcc/x86_64-linux-gnu/15/include/stdint.h /usr/include/stdint.h \
/usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
/usr/include/features.h /usr/include/features-time64.h \
/usr/include/x86_64-linux-gnu/bits/wordsize.h \
/usr/include/x86_64-linux-gnu/bits/timesize.h \
/usr/include/x86_64-linux-gnu/sys/cdefs.h \
/usr/include/x86_64-linux-gnu/bits/long-double.h \
/usr/include/x86_64-linux-gnu/gnu/stubs.h \
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
/usr/include/x86_64-linux-gnu/bits/types.h \
/usr/include/x86_64-linux-gnu/bits/typesizes.h \
/usr/include/x86_64-linux-gnu/bits/time64.h \
/usr/include/x86_64-linux-gnu/bits/wchar.h \
/usr/include/x86_64-linux-gnu/bits/stdint-intn.h \
/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \
/usr/include/x86_64-linux-gnu/bits/stdint-least.h \
/usr/include/lv2/state/state.h \
/usr/lib/gcc/x86_64-linux-gnu/15/include/stddef.h \
/usr/include/lv2/urid/urid.h /usr/include/lv2/atom/atom.h \
/usr/include/c++/15/cstdint \
/usr/include/x86_64-linux-gnu/c++/15/bits/c++config.h \
/usr/include/x86_64-linux-gnu/c++/15/bits/os_defines.h \
/usr/include/x86_64-linux-gnu/c++/15/bits/cpu_defines.h \
/usr/include/c++/15/pstl/pstl_config.h /usr/include/c++/15/cmath \
/usr/include/c++/15/bits/requires_hosted.h \
/usr/include/c++/15/bits/cpp_type_traits.h \
/usr/include/c++/15/bits/version.h /usr/include/c++/15/type_traits \
/usr/include/c++/15/ext/type_traits.h /usr/include/math.h \
/usr/include/x86_64-linux-gnu/bits/math-vector.h \
/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
/usr/include/x86_64-linux-gnu/bits/floatn.h \
/usr/include/x86_64-linux-gnu/bits/floatn-common.h \
/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
/usr/include/x86_64-linux-gnu/bits/fp-logb.h \
/usr/include/x86_64-linux-gnu/bits/fp-fast.h \
/usr/include/x86_64-linux-gnu/bits/mathcalls-macros.h \
/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
/usr/include/x86_64-linux-gnu/bits/mathcalls.h \
/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \
/usr/include/x86_64-linux-gnu/bits/iscanonical.h \
/usr/include/c++/15/bits/std_abs.h /usr/include/stdlib.h \
/usr/include/x86_64-linux-gnu/bits/waitflags.h \
/usr/include/x86_64-linux-gnu/bits/waitstatus.h \
/usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
/usr/include/x86_64-linux-gnu/sys/types.h \
/usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
/usr/include/x86_64-linux-gnu/bits/types/time_t.h \
/usr/include/x86_64-linux-gnu/bits/types/timer_t.h /usr/include/endian.h \
/usr/include/x86_64-linux-gnu/bits/endian.h \
/usr/include/x86_64-linux-gnu/bits/endianness.h \
/usr/include/x86_64-linux-gnu/bits/byteswap.h \
/usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
/usr/include/x86_64-linux-gnu/sys/select.h \
/usr/include/x86_64-linux-gnu/bits/select.h \
/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
/usr/include/x86_64-linux-gnu/bits/select2.h \
/usr/include/x86_64-linux-gnu/bits/select-decl.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \
/usr/include/x86_64-linux-gnu/bits/struct_mutex.h \
/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
/usr/include/x86_64-linux-gnu/bits/stdlib.h \
/usr/include/c++/15/bits/specfun.h \
/usr/include/c++/15/bits/stl_algobase.h \
/usr/include/c++/15/bits/functexcept.h \
/usr/include/c++/15/bits/exception_defines.h \
/usr/include/c++/15/ext/numeric_traits.h \
/usr/include/c++/15/bits/stl_pair.h /usr/include/c++/15/bits/move.h \
/usr/include/c++/15/bits/utility.h /usr/include/c++/15/compare \
/usr/include/c++/15/concepts \
/usr/include/c++/15/bits/stl_iterator_base_types.h \
/usr/include/c++/15/bits/iterator_concepts.h \
/usr/include/c++/15/bits/ptr_traits.h \
/usr/include/c++/15/bits/ranges_cmp.h \
/usr/include/c++/15/bits/stl_iterator_base_funcs.h \
/usr/include/c++/15/bits/concept_check.h \
/usr/include/c++/15/debug/assertions.h \
/usr/include/c++/15/bits/stl_iterator.h /usr/include/c++/15/new \
/usr/include/c++/15/bits/exception.h \
/usr/include/c++/15/bits/stl_construct.h \
/usr/include/c++/15/debug/debug.h \
/usr/include/c++/15/bits/predefined_ops.h /usr/include/c++/15/bit \
/usr/include/c++/15/limits /usr/include/c++/15/tr1/gamma.tcc \
/usr/include/c++/15/tr1/special_function_util.h \
/usr/include/c++/15/tr1/bessel_function.tcc \
/usr/include/c++/15/tr1/beta_function.tcc \
/usr/include/c++/15/tr1/ell_integral.tcc \
/usr/include/c++/15/tr1/exp_integral.tcc \
/usr/include/c++/15/tr1/hypergeometric.tcc \
/usr/include/c++/15/tr1/legendre_function.tcc \
/usr/include/c++/15/tr1/modified_bessel_func.tcc \
/usr/include/c++/15/tr1/poly_hermite.tcc \
/usr/include/c++/15/tr1/poly_laguerre.tcc \
/usr/include/c++/15/tr1/riemann_zeta.tcc /usr/include/c++/15/cstring \
/usr/include/string.h /usr/include/strings.h \
/usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
/usr/include/x86_64-linux-gnu/bits/string_fortified.h \
/usr/include/c++/15/cstdlib /usr/include/c++/15/cstdio \
/usr/include/stdio.h /usr/lib/gcc/x86_64-linux-gnu/15/include/stdarg.h \
/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
/usr/include/x86_64-linux-gnu/bits/stdio2-decl.h \
/usr/include/x86_64-linux-gnu/bits/stdio.h \
/usr/include/x86_64-linux-gnu/bits/stdio2.h \
/usr/include/c++/15/algorithm /usr/include/c++/15/bits/stl_algo.h \
/usr/include/c++/15/bits/algorithmfwd.h \
/usr/include/c++/15/initializer_list /usr/include/c++/15/bits/stl_heap.h \
/usr/include/c++/15/bits/uniform_int_dist.h \
/usr/include/c++/15/bits/stl_tempbuf.h \
/usr/include/c++/15/bits/ranges_algo.h \
/usr/include/c++/15/bits/ranges_algobase.h \
/usr/include/c++/15/bits/ranges_base.h \
/usr/include/c++/15/bits/max_size_type.h /usr/include/c++/15/numbers \
/usr/include/c++/15/bits/invoke.h /usr/include/c++/15/bits/ranges_util.h \
/usr/include/c++/15/pstl/glue_algorithm_defs.h \
/usr/include/c++/15/pstl/execution_defs.h
@@ -0,0 +1,114 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 4.3
# Delete rule output on recipe failure.
.DELETE_ON_ERROR:
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Disable VCS-based implicit rules.
% : %,v
# Disable VCS-based implicit rules.
% : RCS/%
# Disable VCS-based implicit rules.
% : RCS/%,v
# Disable VCS-based implicit rules.
% : SCCS/s.%
# Disable VCS-based implicit rules.
% : s.%
.SUFFIXES: .hpux_make_needs_suffix_list
# Command-line flag to silence nested $(MAKE).
$(VERBOSE)MAKESILENT = -s
#Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /home/oplabs/.hermes/hermes-agent/venv/lib/python3.11/site-packages/cmake/data/bin/cmake
# The command to remove a file.
RM = /home/oplabs/.hermes/hermes-agent/venv/lib/python3.11/site-packages/cmake/data/bin/cmake -E rm -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/oplabs/projects/oplabs-lv2-plugins
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/oplabs/projects/oplabs-lv2-plugins/build
# Include any dependencies generated for this target.
include src/CMakeFiles/OPLabsBandChannel.dir/depend.make
# Include any dependencies generated by the compiler for this target.
include src/CMakeFiles/OPLabsBandChannel.dir/compiler_depend.make
# Include the progress variables for this target.
include src/CMakeFiles/OPLabsBandChannel.dir/progress.make
# Include the compile flags for this target's objects.
include src/CMakeFiles/OPLabsBandChannel.dir/flags.make
src/CMakeFiles/OPLabsBandChannel.dir/codegen:
.PHONY : src/CMakeFiles/OPLabsBandChannel.dir/codegen
src/CMakeFiles/OPLabsBandChannel.dir/OPLabsBandChannel.cpp.o: src/CMakeFiles/OPLabsBandChannel.dir/flags.make
src/CMakeFiles/OPLabsBandChannel.dir/OPLabsBandChannel.cpp.o: /home/oplabs/projects/oplabs-lv2-plugins/src/OPLabsBandChannel.cpp
src/CMakeFiles/OPLabsBandChannel.dir/OPLabsBandChannel.cpp.o: src/CMakeFiles/OPLabsBandChannel.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/oplabs/projects/oplabs-lv2-plugins/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object src/CMakeFiles/OPLabsBandChannel.dir/OPLabsBandChannel.cpp.o"
cd /home/oplabs/projects/oplabs-lv2-plugins/build/src && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT src/CMakeFiles/OPLabsBandChannel.dir/OPLabsBandChannel.cpp.o -MF CMakeFiles/OPLabsBandChannel.dir/OPLabsBandChannel.cpp.o.d -o CMakeFiles/OPLabsBandChannel.dir/OPLabsBandChannel.cpp.o -c /home/oplabs/projects/oplabs-lv2-plugins/src/OPLabsBandChannel.cpp
src/CMakeFiles/OPLabsBandChannel.dir/OPLabsBandChannel.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/OPLabsBandChannel.dir/OPLabsBandChannel.cpp.i"
cd /home/oplabs/projects/oplabs-lv2-plugins/build/src && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/oplabs/projects/oplabs-lv2-plugins/src/OPLabsBandChannel.cpp > CMakeFiles/OPLabsBandChannel.dir/OPLabsBandChannel.cpp.i
src/CMakeFiles/OPLabsBandChannel.dir/OPLabsBandChannel.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/OPLabsBandChannel.dir/OPLabsBandChannel.cpp.s"
cd /home/oplabs/projects/oplabs-lv2-plugins/build/src && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/oplabs/projects/oplabs-lv2-plugins/src/OPLabsBandChannel.cpp -o CMakeFiles/OPLabsBandChannel.dir/OPLabsBandChannel.cpp.s
# Object files for target OPLabsBandChannel
OPLabsBandChannel_OBJECTS = \
"CMakeFiles/OPLabsBandChannel.dir/OPLabsBandChannel.cpp.o"
# External object files for target OPLabsBandChannel
OPLabsBandChannel_EXTERNAL_OBJECTS =
/home/oplabs/projects/oplabs-lv2-plugins/lv2/OPLabsBandChannel.lv2/OPLabsBandChannel.so: src/CMakeFiles/OPLabsBandChannel.dir/OPLabsBandChannel.cpp.o
/home/oplabs/projects/oplabs-lv2-plugins/lv2/OPLabsBandChannel.lv2/OPLabsBandChannel.so: src/CMakeFiles/OPLabsBandChannel.dir/build.make
/home/oplabs/projects/oplabs-lv2-plugins/lv2/OPLabsBandChannel.lv2/OPLabsBandChannel.so: src/CMakeFiles/OPLabsBandChannel.dir/compiler_depend.ts
/home/oplabs/projects/oplabs-lv2-plugins/lv2/OPLabsBandChannel.lv2/OPLabsBandChannel.so: src/CMakeFiles/OPLabsBandChannel.dir/link.txt
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --bold --progress-dir=/home/oplabs/projects/oplabs-lv2-plugins/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX shared library /home/oplabs/projects/oplabs-lv2-plugins/lv2/OPLabsBandChannel.lv2/OPLabsBandChannel.so"
cd /home/oplabs/projects/oplabs-lv2-plugins/build/src && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/OPLabsBandChannel.dir/link.txt --verbose=$(VERBOSE)
# Rule to build all files generated by this target.
src/CMakeFiles/OPLabsBandChannel.dir/build: /home/oplabs/projects/oplabs-lv2-plugins/lv2/OPLabsBandChannel.lv2/OPLabsBandChannel.so
.PHONY : src/CMakeFiles/OPLabsBandChannel.dir/build
src/CMakeFiles/OPLabsBandChannel.dir/clean:
cd /home/oplabs/projects/oplabs-lv2-plugins/build/src && $(CMAKE_COMMAND) -P CMakeFiles/OPLabsBandChannel.dir/cmake_clean.cmake
.PHONY : src/CMakeFiles/OPLabsBandChannel.dir/clean
src/CMakeFiles/OPLabsBandChannel.dir/depend:
cd /home/oplabs/projects/oplabs-lv2-plugins/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/oplabs/projects/oplabs-lv2-plugins /home/oplabs/projects/oplabs-lv2-plugins/src /home/oplabs/projects/oplabs-lv2-plugins/build /home/oplabs/projects/oplabs-lv2-plugins/build/src /home/oplabs/projects/oplabs-lv2-plugins/build/src/CMakeFiles/OPLabsBandChannel.dir/DependInfo.cmake "--color=$(COLOR)" OPLabsBandChannel
.PHONY : src/CMakeFiles/OPLabsBandChannel.dir/depend
@@ -0,0 +1,12 @@
file(REMOVE_RECURSE
"CMakeFiles/OPLabsBandChannel.dir/link.d"
"/home/oplabs/projects/oplabs-lv2-plugins/lv2/OPLabsBandChannel.lv2/OPLabsBandChannel.pdb"
"/home/oplabs/projects/oplabs-lv2-plugins/lv2/OPLabsBandChannel.lv2/OPLabsBandChannel.so"
"CMakeFiles/OPLabsBandChannel.dir/OPLabsBandChannel.cpp.o"
"CMakeFiles/OPLabsBandChannel.dir/OPLabsBandChannel.cpp.o.d"
)
# Per-language clean rules from dependency scanning.
foreach(lang CXX)
include(CMakeFiles/OPLabsBandChannel.dir/cmake_clean_${lang}.cmake OPTIONAL)
endforeach()
@@ -0,0 +1,181 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 4.3
/home/oplabs/projects/oplabs-lv2-plugins/lv2/OPLabsBandChannel.lv2/OPLabsBandChannel.so
/home/oplabs/projects/oplabs-lv2-plugins/src/OPLabsBandChannel.version
/lib64/ld-linux-x86-64.so.2
/usr/lib/x86_64-linux-gnu/crti.o
/usr/lib/x86_64-linux-gnu/crtn.o
/usr/lib/x86_64-linux-gnu/libc.so
/usr/lib/x86_64-linux-gnu/libgcc_s.so.1
/usr/lib/x86_64-linux-gnu/libm.so
/usr/lib/gcc/x86_64-linux-gnu/15/crtbeginS.o
/usr/lib/gcc/x86_64-linux-gnu/15/crtendS.o
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc.a
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so
/usr/lib/gcc/x86_64-linux-gnu/15/libstdc++.so
/usr/lib/x86_64-linux-gnu/libc.so.6
/usr/lib/x86_64-linux-gnu/libc_nonshared.a
/usr/lib/x86_64-linux-gnu/libm.so.6
/usr/lib/x86_64-linux-gnu/libmvec.so.1
/home/oplabs/projects/oplabs-lv2-plugins/build/src/CMakeFiles/OPLabsBandChannel.dir/OPLabsBandChannel.cpp.o
src/CMakeFiles/OPLabsBandChannel.dir/OPLabsBandChannel.cpp.o
/home/oplabs/projects/oplabs-lv2-plugins/src/OPLabsBandChannel.cpp
/home/oplabs/projects/oplabs-lv2-plugins/src/OPLabsBandChannel.hpp
/usr/include/alloca.h
/usr/include/c++/15/algorithm
/usr/include/c++/15/bit
/usr/include/c++/15/bits/algorithmfwd.h
/usr/include/c++/15/bits/concept_check.h
/usr/include/c++/15/bits/cpp_type_traits.h
/usr/include/c++/15/bits/exception.h
/usr/include/c++/15/bits/exception_defines.h
/usr/include/c++/15/bits/functexcept.h
/usr/include/c++/15/bits/invoke.h
/usr/include/c++/15/bits/iterator_concepts.h
/usr/include/c++/15/bits/max_size_type.h
/usr/include/c++/15/bits/move.h
/usr/include/c++/15/bits/predefined_ops.h
/usr/include/c++/15/bits/ptr_traits.h
/usr/include/c++/15/bits/ranges_algo.h
/usr/include/c++/15/bits/ranges_algobase.h
/usr/include/c++/15/bits/ranges_base.h
/usr/include/c++/15/bits/ranges_cmp.h
/usr/include/c++/15/bits/ranges_util.h
/usr/include/c++/15/bits/requires_hosted.h
/usr/include/c++/15/bits/specfun.h
/usr/include/c++/15/bits/std_abs.h
/usr/include/c++/15/bits/stl_algo.h
/usr/include/c++/15/bits/stl_algobase.h
/usr/include/c++/15/bits/stl_construct.h
/usr/include/c++/15/bits/stl_heap.h
/usr/include/c++/15/bits/stl_iterator.h
/usr/include/c++/15/bits/stl_iterator_base_funcs.h
/usr/include/c++/15/bits/stl_iterator_base_types.h
/usr/include/c++/15/bits/stl_pair.h
/usr/include/c++/15/bits/stl_tempbuf.h
/usr/include/c++/15/bits/uniform_int_dist.h
/usr/include/c++/15/bits/utility.h
/usr/include/c++/15/bits/version.h
/usr/include/c++/15/cmath
/usr/include/c++/15/compare
/usr/include/c++/15/concepts
/usr/include/c++/15/cstdint
/usr/include/c++/15/cstdio
/usr/include/c++/15/cstdlib
/usr/include/c++/15/cstring
/usr/include/c++/15/debug/assertions.h
/usr/include/c++/15/debug/debug.h
/usr/include/c++/15/ext/numeric_traits.h
/usr/include/c++/15/ext/type_traits.h
/usr/include/c++/15/initializer_list
/usr/include/c++/15/limits
/usr/include/c++/15/new
/usr/include/c++/15/numbers
/usr/include/c++/15/pstl/execution_defs.h
/usr/include/c++/15/pstl/glue_algorithm_defs.h
/usr/include/c++/15/pstl/pstl_config.h
/usr/include/c++/15/tr1/bessel_function.tcc
/usr/include/c++/15/tr1/beta_function.tcc
/usr/include/c++/15/tr1/ell_integral.tcc
/usr/include/c++/15/tr1/exp_integral.tcc
/usr/include/c++/15/tr1/gamma.tcc
/usr/include/c++/15/tr1/hypergeometric.tcc
/usr/include/c++/15/tr1/legendre_function.tcc
/usr/include/c++/15/tr1/modified_bessel_func.tcc
/usr/include/c++/15/tr1/poly_hermite.tcc
/usr/include/c++/15/tr1/poly_laguerre.tcc
/usr/include/c++/15/tr1/riemann_zeta.tcc
/usr/include/c++/15/tr1/special_function_util.h
/usr/include/c++/15/type_traits
/usr/include/endian.h
/usr/include/features-time64.h
/usr/include/features.h
/usr/include/lv2/atom/atom.h
/usr/include/lv2/core/lv2.h
/usr/include/lv2/state/state.h
/usr/include/lv2/urid/urid.h
/usr/include/math.h
/usr/include/stdc-predef.h
/usr/include/stdint.h
/usr/include/stdio.h
/usr/include/stdlib.h
/usr/include/string.h
/usr/include/strings.h
/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h
/usr/include/x86_64-linux-gnu/bits/byteswap.h
/usr/include/x86_64-linux-gnu/bits/endian.h
/usr/include/x86_64-linux-gnu/bits/endianness.h
/usr/include/x86_64-linux-gnu/bits/floatn-common.h
/usr/include/x86_64-linux-gnu/bits/floatn.h
/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h
/usr/include/x86_64-linux-gnu/bits/fp-fast.h
/usr/include/x86_64-linux-gnu/bits/fp-logb.h
/usr/include/x86_64-linux-gnu/bits/iscanonical.h
/usr/include/x86_64-linux-gnu/bits/libc-header-start.h
/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h
/usr/include/x86_64-linux-gnu/bits/long-double.h
/usr/include/x86_64-linux-gnu/bits/math-vector.h
/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h
/usr/include/x86_64-linux-gnu/bits/mathcalls-macros.h
/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h
/usr/include/x86_64-linux-gnu/bits/mathcalls.h
/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h
/usr/include/x86_64-linux-gnu/bits/select-decl.h
/usr/include/x86_64-linux-gnu/bits/select.h
/usr/include/x86_64-linux-gnu/bits/select2.h
/usr/include/x86_64-linux-gnu/bits/stdint-intn.h
/usr/include/x86_64-linux-gnu/bits/stdint-least.h
/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h
/usr/include/x86_64-linux-gnu/bits/stdio.h
/usr/include/x86_64-linux-gnu/bits/stdio2-decl.h
/usr/include/x86_64-linux-gnu/bits/stdio2.h
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h
/usr/include/x86_64-linux-gnu/bits/stdlib.h
/usr/include/x86_64-linux-gnu/bits/string_fortified.h
/usr/include/x86_64-linux-gnu/bits/strings_fortified.h
/usr/include/x86_64-linux-gnu/bits/struct_mutex.h
/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h
/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h
/usr/include/x86_64-linux-gnu/bits/time64.h
/usr/include/x86_64-linux-gnu/bits/timesize.h
/usr/include/x86_64-linux-gnu/bits/types.h
/usr/include/x86_64-linux-gnu/bits/types/FILE.h
/usr/include/x86_64-linux-gnu/bits/types/__FILE.h
/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h
/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h
/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h
/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h
/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h
/usr/include/x86_64-linux-gnu/bits/types/clock_t.h
/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h
/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h
/usr/include/x86_64-linux-gnu/bits/types/locale_t.h
/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h
/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h
/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h
/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h
/usr/include/x86_64-linux-gnu/bits/types/time_t.h
/usr/include/x86_64-linux-gnu/bits/types/timer_t.h
/usr/include/x86_64-linux-gnu/bits/typesizes.h
/usr/include/x86_64-linux-gnu/bits/uintn-identity.h
/usr/include/x86_64-linux-gnu/bits/waitflags.h
/usr/include/x86_64-linux-gnu/bits/waitstatus.h
/usr/include/x86_64-linux-gnu/bits/wchar.h
/usr/include/x86_64-linux-gnu/bits/wordsize.h
/usr/include/x86_64-linux-gnu/c++/15/bits/c++config.h
/usr/include/x86_64-linux-gnu/c++/15/bits/cpu_defines.h
/usr/include/x86_64-linux-gnu/c++/15/bits/os_defines.h
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h
/usr/include/x86_64-linux-gnu/gnu/stubs.h
/usr/include/x86_64-linux-gnu/sys/cdefs.h
/usr/include/x86_64-linux-gnu/sys/select.h
/usr/include/x86_64-linux-gnu/sys/types.h
/usr/lib/gcc/x86_64-linux-gnu/15/include/stdarg.h
/usr/lib/gcc/x86_64-linux-gnu/15/include/stddef.h
/usr/lib/gcc/x86_64-linux-gnu/15/include/stdint.h
@@ -0,0 +1,527 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 4.3
/home/oplabs/projects/oplabs-lv2-plugins/lv2/OPLabsBandChannel.lv2/OPLabsBandChannel.so: /home/oplabs/projects/oplabs-lv2-plugins/src/OPLabsBandChannel.version \
/lib64/ld-linux-x86-64.so.2 \
/usr/lib/x86_64-linux-gnu/crti.o \
/usr/lib/x86_64-linux-gnu/crtn.o \
/usr/lib/x86_64-linux-gnu/libc.so \
/usr/lib/x86_64-linux-gnu/libgcc_s.so.1 \
/usr/lib/x86_64-linux-gnu/libm.so \
/usr/lib/gcc/x86_64-linux-gnu/15/crtbeginS.o \
/usr/lib/gcc/x86_64-linux-gnu/15/crtendS.o \
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc.a \
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so \
/usr/lib/gcc/x86_64-linux-gnu/15/libstdc++.so \
/usr/lib/x86_64-linux-gnu/libc.so.6 \
/usr/lib/x86_64-linux-gnu/libc_nonshared.a \
/usr/lib/x86_64-linux-gnu/libm.so.6 \
/usr/lib/x86_64-linux-gnu/libmvec.so.1 \
src/CMakeFiles/OPLabsBandChannel.dir/OPLabsBandChannel.cpp.o
src/CMakeFiles/OPLabsBandChannel.dir/OPLabsBandChannel.cpp.o: /home/oplabs/projects/oplabs-lv2-plugins/src/OPLabsBandChannel.cpp \
/home/oplabs/projects/oplabs-lv2-plugins/src/OPLabsBandChannel.hpp \
/usr/include/alloca.h \
/usr/include/c++/15/algorithm \
/usr/include/c++/15/bit \
/usr/include/c++/15/bits/algorithmfwd.h \
/usr/include/c++/15/bits/concept_check.h \
/usr/include/c++/15/bits/cpp_type_traits.h \
/usr/include/c++/15/bits/exception.h \
/usr/include/c++/15/bits/exception_defines.h \
/usr/include/c++/15/bits/functexcept.h \
/usr/include/c++/15/bits/invoke.h \
/usr/include/c++/15/bits/iterator_concepts.h \
/usr/include/c++/15/bits/max_size_type.h \
/usr/include/c++/15/bits/move.h \
/usr/include/c++/15/bits/predefined_ops.h \
/usr/include/c++/15/bits/ptr_traits.h \
/usr/include/c++/15/bits/ranges_algo.h \
/usr/include/c++/15/bits/ranges_algobase.h \
/usr/include/c++/15/bits/ranges_base.h \
/usr/include/c++/15/bits/ranges_cmp.h \
/usr/include/c++/15/bits/ranges_util.h \
/usr/include/c++/15/bits/requires_hosted.h \
/usr/include/c++/15/bits/specfun.h \
/usr/include/c++/15/bits/std_abs.h \
/usr/include/c++/15/bits/stl_algo.h \
/usr/include/c++/15/bits/stl_algobase.h \
/usr/include/c++/15/bits/stl_construct.h \
/usr/include/c++/15/bits/stl_heap.h \
/usr/include/c++/15/bits/stl_iterator.h \
/usr/include/c++/15/bits/stl_iterator_base_funcs.h \
/usr/include/c++/15/bits/stl_iterator_base_types.h \
/usr/include/c++/15/bits/stl_pair.h \
/usr/include/c++/15/bits/stl_tempbuf.h \
/usr/include/c++/15/bits/uniform_int_dist.h \
/usr/include/c++/15/bits/utility.h \
/usr/include/c++/15/bits/version.h \
/usr/include/c++/15/cmath \
/usr/include/c++/15/compare \
/usr/include/c++/15/concepts \
/usr/include/c++/15/cstdint \
/usr/include/c++/15/cstdio \
/usr/include/c++/15/cstdlib \
/usr/include/c++/15/cstring \
/usr/include/c++/15/debug/assertions.h \
/usr/include/c++/15/debug/debug.h \
/usr/include/c++/15/ext/numeric_traits.h \
/usr/include/c++/15/ext/type_traits.h \
/usr/include/c++/15/initializer_list \
/usr/include/c++/15/limits \
/usr/include/c++/15/new \
/usr/include/c++/15/numbers \
/usr/include/c++/15/pstl/execution_defs.h \
/usr/include/c++/15/pstl/glue_algorithm_defs.h \
/usr/include/c++/15/pstl/pstl_config.h \
/usr/include/c++/15/tr1/bessel_function.tcc \
/usr/include/c++/15/tr1/beta_function.tcc \
/usr/include/c++/15/tr1/ell_integral.tcc \
/usr/include/c++/15/tr1/exp_integral.tcc \
/usr/include/c++/15/tr1/gamma.tcc \
/usr/include/c++/15/tr1/hypergeometric.tcc \
/usr/include/c++/15/tr1/legendre_function.tcc \
/usr/include/c++/15/tr1/modified_bessel_func.tcc \
/usr/include/c++/15/tr1/poly_hermite.tcc \
/usr/include/c++/15/tr1/poly_laguerre.tcc \
/usr/include/c++/15/tr1/riemann_zeta.tcc \
/usr/include/c++/15/tr1/special_function_util.h \
/usr/include/c++/15/type_traits \
/usr/include/endian.h \
/usr/include/features-time64.h \
/usr/include/features.h \
/usr/include/lv2/atom/atom.h \
/usr/include/lv2/core/lv2.h \
/usr/include/lv2/state/state.h \
/usr/include/lv2/urid/urid.h \
/usr/include/math.h \
/usr/include/stdc-predef.h \
/usr/include/stdint.h \
/usr/include/stdio.h \
/usr/include/stdlib.h \
/usr/include/string.h \
/usr/include/strings.h \
/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \
/usr/include/x86_64-linux-gnu/bits/byteswap.h \
/usr/include/x86_64-linux-gnu/bits/endian.h \
/usr/include/x86_64-linux-gnu/bits/endianness.h \
/usr/include/x86_64-linux-gnu/bits/floatn-common.h \
/usr/include/x86_64-linux-gnu/bits/floatn.h \
/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
/usr/include/x86_64-linux-gnu/bits/fp-fast.h \
/usr/include/x86_64-linux-gnu/bits/fp-logb.h \
/usr/include/x86_64-linux-gnu/bits/iscanonical.h \
/usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
/usr/include/x86_64-linux-gnu/bits/long-double.h \
/usr/include/x86_64-linux-gnu/bits/math-vector.h \
/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
/usr/include/x86_64-linux-gnu/bits/mathcalls-macros.h \
/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \
/usr/include/x86_64-linux-gnu/bits/mathcalls.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
/usr/include/x86_64-linux-gnu/bits/select-decl.h \
/usr/include/x86_64-linux-gnu/bits/select.h \
/usr/include/x86_64-linux-gnu/bits/select2.h \
/usr/include/x86_64-linux-gnu/bits/stdint-intn.h \
/usr/include/x86_64-linux-gnu/bits/stdint-least.h \
/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \
/usr/include/x86_64-linux-gnu/bits/stdio.h \
/usr/include/x86_64-linux-gnu/bits/stdio2-decl.h \
/usr/include/x86_64-linux-gnu/bits/stdio2.h \
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
/usr/include/x86_64-linux-gnu/bits/stdlib.h \
/usr/include/x86_64-linux-gnu/bits/string_fortified.h \
/usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
/usr/include/x86_64-linux-gnu/bits/struct_mutex.h \
/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \
/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
/usr/include/x86_64-linux-gnu/bits/time64.h \
/usr/include/x86_64-linux-gnu/bits/timesize.h \
/usr/include/x86_64-linux-gnu/bits/types.h \
/usr/include/x86_64-linux-gnu/bits/types/FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
/usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \
/usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
/usr/include/x86_64-linux-gnu/bits/types/time_t.h \
/usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
/usr/include/x86_64-linux-gnu/bits/typesizes.h \
/usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
/usr/include/x86_64-linux-gnu/bits/waitflags.h \
/usr/include/x86_64-linux-gnu/bits/waitstatus.h \
/usr/include/x86_64-linux-gnu/bits/wchar.h \
/usr/include/x86_64-linux-gnu/bits/wordsize.h \
/usr/include/x86_64-linux-gnu/c++/15/bits/c++config.h \
/usr/include/x86_64-linux-gnu/c++/15/bits/cpu_defines.h \
/usr/include/x86_64-linux-gnu/c++/15/bits/os_defines.h \
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
/usr/include/x86_64-linux-gnu/gnu/stubs.h \
/usr/include/x86_64-linux-gnu/sys/cdefs.h \
/usr/include/x86_64-linux-gnu/sys/select.h \
/usr/include/x86_64-linux-gnu/sys/types.h \
/usr/lib/gcc/x86_64-linux-gnu/15/include/stdarg.h \
/usr/lib/gcc/x86_64-linux-gnu/15/include/stddef.h \
/usr/lib/gcc/x86_64-linux-gnu/15/include/stdint.h
/usr/lib/gcc/x86_64-linux-gnu/15/include/stddef.h:
/usr/lib/gcc/x86_64-linux-gnu/15/include/stdarg.h:
/usr/include/x86_64-linux-gnu/sys/types.h:
/usr/include/x86_64-linux-gnu/sys/cdefs.h:
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
/usr/include/x86_64-linux-gnu/c++/15/bits/c++config.h:
/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
/usr/include/x86_64-linux-gnu/bits/waitflags.h:
/usr/include/x86_64-linux-gnu/bits/typesizes.h:
/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h:
/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
/usr/include/x86_64-linux-gnu/bits/wchar.h:
/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h:
/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
/usr/include/x86_64-linux-gnu/bits/timesize.h:
/usr/include/x86_64-linux-gnu/bits/time64.h:
/usr/include/x86_64-linux-gnu/bits/struct_mutex.h:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
/usr/include/x86_64-linux-gnu/bits/stdlib.h:
/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
/usr/include/x86_64-linux-gnu/c++/15/bits/os_defines.h:
/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:
/usr/include/c++/15/cstdint:
/usr/lib/gcc/x86_64-linux-gnu/15/crtbeginS.o:
/usr/include/c++/15/bits/ranges_algobase.h:
/usr/include/x86_64-linux-gnu/bits/math-vector.h:
/usr/include/c++/15/bits/stl_iterator_base_types.h:
/usr/include/c++/15/bits/stl_iterator_base_funcs.h:
/usr/include/c++/15/bits/utility.h:
/usr/include/x86_64-linux-gnu/bits/select-decl.h:
/usr/include/c++/15/bits/std_abs.h:
/usr/include/c++/15/bits/ranges_util.h:
/usr/include/stdlib.h:
/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
/usr/include/c++/15/bits/exception_defines.h:
/usr/include/c++/15/bits/predefined_ops.h:
/usr/include/c++/15/bits/move.h:
/usr/include/lv2/state/state.h:
/usr/include/c++/15/bits/stl_pair.h:
/usr/include/c++/15/compare:
/usr/include/c++/15/bits/stl_algo.h:
/usr/include/c++/15/bits/ranges_algo.h:
/usr/lib/x86_64-linux-gnu/libc_nonshared.a:
/usr/include/c++/15/bits/stl_tempbuf.h:
/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
/usr/lib/gcc/x86_64-linux-gnu/15/libstdc++.so:
/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
/usr/include/c++/15/bits/specfun.h:
/usr/lib/x86_64-linux-gnu/libc.so.6:
/usr/include/c++/15/pstl/pstl_config.h:
/usr/include/x86_64-linux-gnu/bits/floatn.h:
/home/oplabs/projects/oplabs-lv2-plugins/src/OPLabsBandChannel.version:
/usr/include/stdio.h:
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc.a:
/usr/include/c++/15/bits/stl_heap.h:
/usr/include/c++/15/bits/ptr_traits.h:
/usr/include/c++/15/debug/debug.h:
/usr/lib/x86_64-linux-gnu/libm.so:
/usr/include/c++/15/bits/stl_iterator.h:
/usr/include/alloca.h:
/usr/lib/x86_64-linux-gnu/libc.so:
/usr/include/c++/15/debug/assertions.h:
/usr/lib/x86_64-linux-gnu/libm.so.6:
/home/oplabs/projects/oplabs-lv2-plugins/src/OPLabsBandChannel.cpp:
/usr/include/c++/15/type_traits:
/usr/include/c++/15/bit:
/usr/include/x86_64-linux-gnu/c++/15/bits/cpu_defines.h:
/usr/include/c++/15/bits/ranges_cmp.h:
/usr/lib/gcc/x86_64-linux-gnu/15/crtendS.o:
/usr/include/c++/15/bits/stl_construct.h:
/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
/usr/lib/x86_64-linux-gnu/crti.o:
/usr/include/c++/15/bits/invoke.h:
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so:
/usr/include/x86_64-linux-gnu/bits/endianness.h:
/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
src/CMakeFiles/OPLabsBandChannel.dir/OPLabsBandChannel.cpp.o:
/usr/include/c++/15/tr1/hypergeometric.tcc:
/usr/include/x86_64-linux-gnu/bits/select.h:
/usr/lib/x86_64-linux-gnu/libgcc_s.so.1:
/usr/include/x86_64-linux-gnu/gnu/stubs.h:
/usr/include/x86_64-linux-gnu/bits/endian.h:
/usr/include/c++/15/bits/stl_algobase.h:
/usr/include/c++/15/algorithm:
/usr/lib/x86_64-linux-gnu/libmvec.so.1:
/usr/include/c++/15/tr1/bessel_function.tcc:
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
/lib64/ld-linux-x86-64.so.2:
/usr/include/c++/15/bits/ranges_base.h:
/usr/include/c++/15/bits/max_size_type.h:
/usr/lib/x86_64-linux-gnu/crtn.o:
/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
/home/oplabs/projects/oplabs-lv2-plugins/src/OPLabsBandChannel.hpp:
/usr/include/c++/15/tr1/poly_laguerre.tcc:
/usr/include/c++/15/bits/version.h:
/usr/include/c++/15/bits/concept_check.h:
/usr/include/c++/15/bits/cpp_type_traits.h:
/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h:
/usr/include/c++/15/bits/requires_hosted.h:
/usr/include/c++/15/cstdlib:
/usr/include/c++/15/ext/type_traits.h:
/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h:
/usr/include/c++/15/cstring:
/usr/include/c++/15/ext/numeric_traits.h:
/usr/include/x86_64-linux-gnu/bits/wordsize.h:
/usr/include/c++/15/pstl/execution_defs.h:
/usr/include/c++/15/bits/exception.h:
/usr/include/c++/15/initializer_list:
/usr/include/c++/15/limits:
/usr/include/x86_64-linux-gnu/sys/select.h:
/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h:
/usr/include/c++/15/new:
/usr/include/c++/15/tr1/beta_function.tcc:
/usr/include/c++/15/numbers:
/usr/include/c++/15/cstdio:
/usr/include/x86_64-linux-gnu/bits/floatn-common.h:
/usr/include/c++/15/bits/algorithmfwd.h:
/usr/include/c++/15/pstl/glue_algorithm_defs.h:
/usr/include/features.h:
/usr/include/c++/15/tr1/ell_integral.tcc:
/usr/include/x86_64-linux-gnu/bits/byteswap.h:
/usr/include/x86_64-linux-gnu/bits/long-double.h:
/usr/include/c++/15/bits/iterator_concepts.h:
/usr/include/c++/15/bits/functexcept.h:
/usr/include/x86_64-linux-gnu/bits/mathcalls-macros.h:
/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
/usr/include/c++/15/tr1/exp_integral.tcc:
/usr/include/c++/15/tr1/gamma.tcc:
/usr/include/stdint.h:
/usr/include/c++/15/tr1/modified_bessel_func.tcc:
/usr/include/c++/15/bits/uniform_int_dist.h:
/usr/include/features-time64.h:
/usr/include/c++/15/tr1/riemann_zeta.tcc:
/usr/include/c++/15/cmath:
/usr/include/endian.h:
/usr/include/c++/15/tr1/special_function_util.h:
/usr/include/lv2/atom/atom.h:
/usr/include/lv2/core/lv2.h:
/usr/include/c++/15/tr1/poly_hermite.tcc:
/usr/include/lv2/urid/urid.h:
/usr/lib/gcc/x86_64-linux-gnu/15/include/stdint.h:
/usr/include/math.h:
/usr/include/stdc-predef.h:
/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h:
/usr/include/strings.h:
/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
/usr/include/c++/15/tr1/legendre_function.tcc:
/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
/usr/include/x86_64-linux-gnu/bits/select2.h:
/usr/include/x86_64-linux-gnu/bits/types.h:
/usr/include/c++/15/concepts:
/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
/usr/include/x86_64-linux-gnu/bits/stdint-least.h:
/usr/include/string.h:
/usr/include/x86_64-linux-gnu/bits/stdio.h:
/usr/include/x86_64-linux-gnu/bits/stdio2-decl.h:
@@ -0,0 +1,2 @@
# CMAKE generated file: DO NOT EDIT!
# Timestamp file for compiler generated dependencies management for OPLabsBandChannel.
@@ -0,0 +1,2 @@
# Empty dependencies file for OPLabsBandChannel.
# This may be replaced when dependencies are built.
@@ -0,0 +1,10 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 4.3
# compile CXX with /usr/bin/c++
CXX_DEFINES = -DOPLabsBandChannel_EXPORTS
CXX_INCLUDES =
CXX_FLAGS = -O3 -DNDEBUG -std=gnu++20 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -Wall -Wextra -Wpedantic
@@ -0,0 +1,85 @@
/home/oplabs/projects/oplabs-lv2-plugins/lv2/OPLabsBandChannel.lv2/OPLabsBandChannel.so: \
/home/oplabs/projects/oplabs-lv2-plugins/src/OPLabsBandChannel.version \
/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/crti.o \
/usr/lib/gcc/x86_64-linux-gnu/15/crtbeginS.o \
CMakeFiles/OPLabsBandChannel.dir/OPLabsBandChannel.cpp.o \
/usr/lib/gcc/x86_64-linux-gnu/15/libstdc++.so \
/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libm.so \
/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libm.so \
/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libm.so \
/usr/lib/x86_64-linux-gnu/libm.so.6 \
/usr/lib/x86_64-linux-gnu/libmvec.so.1 \
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so \
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so \
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so \
/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libgcc_s.so.1 \
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc.a \
/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libc.so \
/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libc.so \
/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libc.so \
/usr/lib/x86_64-linux-gnu/libc.so.6 \
/usr/lib/x86_64-linux-gnu/libc_nonshared.a \
/lib64/ld-linux-x86-64.so.2 \
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so \
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so \
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so \
/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libgcc_s.so.1 \
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc.a \
/usr/lib/gcc/x86_64-linux-gnu/15/crtendS.o \
/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/crtn.o
/home/oplabs/projects/oplabs-lv2-plugins/src/OPLabsBandChannel.version:
/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/crti.o:
/usr/lib/gcc/x86_64-linux-gnu/15/crtbeginS.o:
CMakeFiles/OPLabsBandChannel.dir/OPLabsBandChannel.cpp.o:
/usr/lib/gcc/x86_64-linux-gnu/15/libstdc++.so:
/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libm.so:
/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libm.so:
/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libm.so:
/usr/lib/x86_64-linux-gnu/libm.so.6:
/usr/lib/x86_64-linux-gnu/libmvec.so.1:
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so:
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so:
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so:
/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libgcc_s.so.1:
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc.a:
/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libc.so:
/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libc.so:
/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libc.so:
/usr/lib/x86_64-linux-gnu/libc.so.6:
/usr/lib/x86_64-linux-gnu/libc_nonshared.a:
/lib64/ld-linux-x86-64.so.2:
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so:
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so:
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so:
/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libgcc_s.so.1:
/usr/lib/gcc/x86_64-linux-gnu/15/libgcc.a:
/usr/lib/gcc/x86_64-linux-gnu/15/crtendS.o:
/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/crtn.o:
@@ -0,0 +1 @@
/usr/bin/c++ -fPIC -O3 -DNDEBUG -shared -Wl,--version-script=/home/oplabs/projects/oplabs-lv2-plugins/src/OPLabsBandChannel.version -Wl,-z,nodelete -Wl,--dependency-file=CMakeFiles/OPLabsBandChannel.dir/link.d -Wl,-soname,OPLabsBandChannel.so -o /home/oplabs/projects/oplabs-lv2-plugins/lv2/OPLabsBandChannel.lv2/OPLabsBandChannel.so CMakeFiles/OPLabsBandChannel.dir/OPLabsBandChannel.cpp.o
@@ -0,0 +1,3 @@
CMAKE_PROGRESS_1 = 3
CMAKE_PROGRESS_2 = 4
+1
View File
@@ -0,0 +1 @@
4
+224
View File
@@ -0,0 +1,224 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 4.3
# Default target executed when no arguments are given to make.
default_target: all
.PHONY : default_target
# Allow only one "make -f Makefile2" at a time, but pass parallelism.
.NOTPARALLEL:
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Disable VCS-based implicit rules.
% : %,v
# Disable VCS-based implicit rules.
% : RCS/%
# Disable VCS-based implicit rules.
% : RCS/%,v
# Disable VCS-based implicit rules.
% : SCCS/s.%
# Disable VCS-based implicit rules.
% : s.%
.SUFFIXES: .hpux_make_needs_suffix_list
# Command-line flag to silence nested $(MAKE).
$(VERBOSE)MAKESILENT = -s
#Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /home/oplabs/.hermes/hermes-agent/venv/lib/python3.11/site-packages/cmake/data/bin/cmake
# The command to remove a file.
RM = /home/oplabs/.hermes/hermes-agent/venv/lib/python3.11/site-packages/cmake/data/bin/cmake -E rm -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/oplabs/projects/oplabs-lv2-plugins
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/oplabs/projects/oplabs-lv2-plugins/build
#=============================================================================
# Targets provided globally by CMake.
# Special rule for the target edit_cache
edit_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "No interactive CMake dialog available..."
/home/oplabs/.hermes/hermes-agent/venv/lib/python3.11/site-packages/cmake/data/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available.
.PHONY : edit_cache
# Special rule for the target edit_cache
edit_cache/fast: edit_cache
.PHONY : edit_cache/fast
# Special rule for the target rebuild_cache
rebuild_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake to regenerate build system..."
/home/oplabs/.hermes/hermes-agent/venv/lib/python3.11/site-packages/cmake/data/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
.PHONY : rebuild_cache
# Special rule for the target rebuild_cache
rebuild_cache/fast: rebuild_cache
.PHONY : rebuild_cache/fast
# The main all target
all: cmake_check_build_system
cd /home/oplabs/projects/oplabs-lv2-plugins/build && $(CMAKE_COMMAND) -E cmake_progress_start /home/oplabs/projects/oplabs-lv2-plugins/build/CMakeFiles /home/oplabs/projects/oplabs-lv2-plugins/build/src//CMakeFiles/progress.marks
cd /home/oplabs/projects/oplabs-lv2-plugins/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 src/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/oplabs/projects/oplabs-lv2-plugins/build/CMakeFiles 0
.PHONY : all
# The main clean target
clean:
cd /home/oplabs/projects/oplabs-lv2-plugins/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 src/clean
.PHONY : clean
# The main clean target
clean/fast: clean
.PHONY : clean/fast
# Prepare targets for installation.
preinstall: all
cd /home/oplabs/projects/oplabs-lv2-plugins/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 src/preinstall
.PHONY : preinstall
# Prepare targets for installation.
preinstall/fast:
cd /home/oplabs/projects/oplabs-lv2-plugins/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 src/preinstall
.PHONY : preinstall/fast
# clear depends
depend:
cd /home/oplabs/projects/oplabs-lv2-plugins/build && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
.PHONY : depend
# Convenience name for target.
src/CMakeFiles/OPLabsBandChannel.dir/rule:
cd /home/oplabs/projects/oplabs-lv2-plugins/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 src/CMakeFiles/OPLabsBandChannel.dir/rule
.PHONY : src/CMakeFiles/OPLabsBandChannel.dir/rule
# Convenience name for target.
OPLabsBandChannel: src/CMakeFiles/OPLabsBandChannel.dir/rule
.PHONY : OPLabsBandChannel
# fast build rule for target.
OPLabsBandChannel/fast:
cd /home/oplabs/projects/oplabs-lv2-plugins/build && $(MAKE) $(MAKESILENT) -f src/CMakeFiles/OPLabsBandChannel.dir/build.make src/CMakeFiles/OPLabsBandChannel.dir/build
.PHONY : OPLabsBandChannel/fast
# Convenience name for target.
src/CMakeFiles/OPLabsBandBus.dir/rule:
cd /home/oplabs/projects/oplabs-lv2-plugins/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 src/CMakeFiles/OPLabsBandBus.dir/rule
.PHONY : src/CMakeFiles/OPLabsBandBus.dir/rule
# Convenience name for target.
OPLabsBandBus: src/CMakeFiles/OPLabsBandBus.dir/rule
.PHONY : OPLabsBandBus
# fast build rule for target.
OPLabsBandBus/fast:
cd /home/oplabs/projects/oplabs-lv2-plugins/build && $(MAKE) $(MAKESILENT) -f src/CMakeFiles/OPLabsBandBus.dir/build.make src/CMakeFiles/OPLabsBandBus.dir/build
.PHONY : OPLabsBandBus/fast
OPLabsBandBus.o: OPLabsBandBus.cpp.o
.PHONY : OPLabsBandBus.o
# target to build an object file
OPLabsBandBus.cpp.o:
cd /home/oplabs/projects/oplabs-lv2-plugins/build && $(MAKE) $(MAKESILENT) -f src/CMakeFiles/OPLabsBandBus.dir/build.make src/CMakeFiles/OPLabsBandBus.dir/OPLabsBandBus.cpp.o
.PHONY : OPLabsBandBus.cpp.o
OPLabsBandBus.i: OPLabsBandBus.cpp.i
.PHONY : OPLabsBandBus.i
# target to preprocess a source file
OPLabsBandBus.cpp.i:
cd /home/oplabs/projects/oplabs-lv2-plugins/build && $(MAKE) $(MAKESILENT) -f src/CMakeFiles/OPLabsBandBus.dir/build.make src/CMakeFiles/OPLabsBandBus.dir/OPLabsBandBus.cpp.i
.PHONY : OPLabsBandBus.cpp.i
OPLabsBandBus.s: OPLabsBandBus.cpp.s
.PHONY : OPLabsBandBus.s
# target to generate assembly for a file
OPLabsBandBus.cpp.s:
cd /home/oplabs/projects/oplabs-lv2-plugins/build && $(MAKE) $(MAKESILENT) -f src/CMakeFiles/OPLabsBandBus.dir/build.make src/CMakeFiles/OPLabsBandBus.dir/OPLabsBandBus.cpp.s
.PHONY : OPLabsBandBus.cpp.s
OPLabsBandChannel.o: OPLabsBandChannel.cpp.o
.PHONY : OPLabsBandChannel.o
# target to build an object file
OPLabsBandChannel.cpp.o:
cd /home/oplabs/projects/oplabs-lv2-plugins/build && $(MAKE) $(MAKESILENT) -f src/CMakeFiles/OPLabsBandChannel.dir/build.make src/CMakeFiles/OPLabsBandChannel.dir/OPLabsBandChannel.cpp.o
.PHONY : OPLabsBandChannel.cpp.o
OPLabsBandChannel.i: OPLabsBandChannel.cpp.i
.PHONY : OPLabsBandChannel.i
# target to preprocess a source file
OPLabsBandChannel.cpp.i:
cd /home/oplabs/projects/oplabs-lv2-plugins/build && $(MAKE) $(MAKESILENT) -f src/CMakeFiles/OPLabsBandChannel.dir/build.make src/CMakeFiles/OPLabsBandChannel.dir/OPLabsBandChannel.cpp.i
.PHONY : OPLabsBandChannel.cpp.i
OPLabsBandChannel.s: OPLabsBandChannel.cpp.s
.PHONY : OPLabsBandChannel.s
# target to generate assembly for a file
OPLabsBandChannel.cpp.s:
cd /home/oplabs/projects/oplabs-lv2-plugins/build && $(MAKE) $(MAKESILENT) -f src/CMakeFiles/OPLabsBandChannel.dir/build.make src/CMakeFiles/OPLabsBandChannel.dir/OPLabsBandChannel.cpp.s
.PHONY : OPLabsBandChannel.cpp.s
# Help Target
help:
@echo "The following are some of the valid targets for this Makefile:"
@echo "... all (the default if no target is provided)"
@echo "... clean"
@echo "... depend"
@echo "... edit_cache"
@echo "... rebuild_cache"
@echo "... OPLabsBandBus"
@echo "... OPLabsBandChannel"
@echo "... OPLabsBandBus.o"
@echo "... OPLabsBandBus.i"
@echo "... OPLabsBandBus.s"
@echo "... OPLabsBandChannel.o"
@echo "... OPLabsBandChannel.i"
@echo "... OPLabsBandChannel.s"
.PHONY : help
#=============================================================================
# Special targets to cleanup operation of make.
# Special rule to run CMake to check the build system integrity.
# No rule that depends on this can have commands that come from listfiles
# because they might be regenerated.
cmake_check_build_system:
cd /home/oplabs/projects/oplabs-lv2-plugins/build && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
.PHONY : cmake_check_build_system
+50
View File
@@ -0,0 +1,50 @@
# Install script for directory: /home/oplabs/projects/oplabs-lv2-plugins/src
# Set the install prefix
if(NOT DEFINED CMAKE_INSTALL_PREFIX)
set(CMAKE_INSTALL_PREFIX "/usr/local")
endif()
string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
# Set the install configuration name.
if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
if(BUILD_TYPE)
string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
else()
set(CMAKE_INSTALL_CONFIG_NAME "Release")
endif()
message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
endif()
# Set the component getting installed.
if(NOT CMAKE_INSTALL_COMPONENT)
if(COMPONENT)
message(STATUS "Install component: \"${COMPONENT}\"")
set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
else()
set(CMAKE_INSTALL_COMPONENT)
endif()
endif()
# Install shared libraries without execute permission?
if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
set(CMAKE_INSTALL_SO_NO_EXE "1")
endif()
# Is this installation the result of a crosscompile?
if(NOT DEFINED CMAKE_CROSSCOMPILING)
set(CMAKE_CROSSCOMPILING "FALSE")
endif()
# Set path to fallback-tool for dependency-resolution.
if(NOT DEFINED CMAKE_OBJDUMP)
set(CMAKE_OBJDUMP "/usr/bin/objdump")
endif()
string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
"${CMAKE_INSTALL_MANIFEST_FILES}")
if(CMAKE_INSTALL_LOCAL_ONLY)
file(WRITE "/home/oplabs/projects/oplabs-lv2-plugins/build/src/install_local_manifest.txt"
"${CMAKE_INSTALL_MANIFEST_CONTENT}")
endif()
Binary file not shown.
+141
View File
@@ -0,0 +1,141 @@
@prefix modgui: <http://moddevices.com/ns/modgui#> .
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix units: <http://lv2plug.in/ns/extensions/units#> .
@prefix mod: <http://moddevices.com/ns/mod#> .
@prefix state: <http://lv2plug.in/ns/ext/state#> .
@prefix epp: <http://lv2plug.in/ns/ext/port-props#> .
@prefix pg: <http://lv2plug.in/ns/ext/port-groups#> .
@prefix urid: <http://lv2plug.in/ns/ext/urid#> .
<http://ourpad.casa/plugins/oplabs-band-bus>
a lv2:Plugin , lv2:UtilityPlugin ;
doap:name "OPLabs Band Bus" ;
doap:license <http://opensource.org/licenses/MIT> ;
lv2:project <http://ourpad.casa/plugins/oplabs-band-bus> ;
mod:brand "OPLabs" ;
mod:label "Band Bus" ;
mod:model "Band Bus" ;
# ModGUI for PiPedal
modgui:gui [
modgui:resourceDirectory <modgui/> ;
modgui:iconTemplate <modgui/index.html> ;
modgui:settingsTemplate <modgui/index.html> ;
] ;
# State extension for save/restore
lv2:extensionData state:interface ;
# Required features for state and path mapping
lv2:requiredFeature urid:map ;
lv2:optionalFeature state:mapPath ,
state:freePath ;
# ============================
# PORT DEFINITIONS (62 total)
# ============================
lv2:port
## --- AUDIO INPUT PORTS (16) ---
## Channel 1
[ a lv2:AudioPort , lv2:InputPort ; lv2:index 0 ; lv2:symbol "ch1L" ; lv2:name "Ch 1 L" ; pg:group <http://ourpad.casa/plugins/oplabs-band-bus#ch1> ] ,
[ a lv2:AudioPort , lv2:InputPort ; lv2:index 1 ; lv2:symbol "ch1R" ; lv2:name "Ch 1 R" ; pg:group <http://ourpad.casa/plugins/oplabs-band-bus#ch1> ] ,
## Channel 2
[ a lv2:AudioPort , lv2:InputPort ; lv2:index 2 ; lv2:symbol "ch2L" ; lv2:name "Ch 2 L" ; pg:group <http://ourpad.casa/plugins/oplabs-band-bus#ch2> ] ,
[ a lv2:AudioPort , lv2:InputPort ; lv2:index 3 ; lv2:symbol "ch2R" ; lv2:name "Ch 2 R" ; pg:group <http://ourpad.casa/plugins/oplabs-band-bus#ch2> ] ,
## Channel 3
[ a lv2:AudioPort , lv2:InputPort ; lv2:index 4 ; lv2:symbol "ch3L" ; lv2:name "Ch 3 L" ; pg:group <http://ourpad.casa/plugins/oplabs-band-bus#ch3> ] ,
[ a lv2:AudioPort , lv2:InputPort ; lv2:index 5 ; lv2:symbol "ch3R" ; lv2:name "Ch 3 R" ; pg:group <http://ourpad.casa/plugins/oplabs-band-bus#ch3> ] ,
## Channel 4
[ a lv2:AudioPort , lv2:InputPort ; lv2:index 6 ; lv2:symbol "ch4L" ; lv2:name "Ch 4 L" ; pg:group <http://ourpad.casa/plugins/oplabs-band-bus#ch4> ] ,
[ a lv2:AudioPort , lv2:InputPort ; lv2:index 7 ; lv2:symbol "ch4R" ; lv2:name "Ch 4 R" ; pg:group <http://ourpad.casa/plugins/oplabs-band-bus#ch4> ] ,
## Channel 5
[ a lv2:AudioPort , lv2:InputPort ; lv2:index 8 ; lv2:symbol "ch5L" ; lv2:name "Ch 5 L" ; pg:group <http://ourpad.casa/plugins/oplabs-band-bus#ch5> ] ,
[ a lv2:AudioPort , lv2:InputPort ; lv2:index 9 ; lv2:symbol "ch5R" ; lv2:name "Ch 5 R" ; pg:group <http://ourpad.casa/plugins/oplabs-band-bus#ch5> ] ,
## Channel 6
[ a lv2:AudioPort , lv2:InputPort ; lv2:index 10 ; lv2:symbol "ch6L" ; lv2:name "Ch 6 L" ; pg:group <http://ourpad.casa/plugins/oplabs-band-bus#ch6> ] ,
[ a lv2:AudioPort , lv2:InputPort ; lv2:index 11 ; lv2:symbol "ch6R" ; lv2:name "Ch 6 R" ; pg:group <http://ourpad.casa/plugins/oplabs-band-bus#ch6> ] ,
## Channel 7
[ a lv2:AudioPort , lv2:InputPort ; lv2:index 12 ; lv2:symbol "ch7L" ; lv2:name "Ch 7 L" ; pg:group <http://ourpad.casa/plugins/oplabs-band-bus#ch7> ] ,
[ a lv2:AudioPort , lv2:InputPort ; lv2:index 13 ; lv2:symbol "ch7R" ; lv2:name "Ch 7 R" ; pg:group <http://ourpad.casa/plugins/oplabs-band-bus#ch7> ] ,
## Channel 8
[ a lv2:AudioPort , lv2:InputPort ; lv2:index 14 ; lv2:symbol "ch8L" ; lv2:name "Ch 8 L" ; pg:group <http://ourpad.casa/plugins/oplabs-band-bus#ch8> ] ,
[ a lv2:AudioPort , lv2:InputPort ; lv2:index 15 ; lv2:symbol "ch8R" ; lv2:name "Ch 8 R" ; pg:group <http://ourpad.casa/plugins/oplabs-band-bus#ch8> ] ,
## --- AUDIO OUTPUT PORTS (2) ---
[ a lv2:AudioPort , lv2:OutputPort ; lv2:index 16 ; lv2:symbol "outL" ; lv2:name "Out L" ] ,
[ a lv2:AudioPort , lv2:OutputPort ; lv2:index 17 ; lv2:symbol "outR" ; lv2:name "Out R" ] ,
## --- CONTROL INPUT PORTS — PER CHANNEL (24) ---
## Ch 1
[ a lv2:InputPort , lv2:ControlPort ; lv2:index 18 ; lv2:symbol "ch1Vol" ; lv2:name "Ch 1 Vol" ; lv2:default 0.0 ; lv2:minimum -60.0 ; lv2:maximum 6.0 ; units:unit units:db ; pg:group <http://ourpad.casa/plugins/oplabs-band-bus#ch1> ] ,
[ a lv2:InputPort , lv2:ControlPort ; lv2:index 19 ; lv2:symbol "ch1Pan" ; lv2:name "Ch 1 Pan" ; lv2:default 0.0 ; lv2:minimum -1.0 ; lv2:maximum 1.0 ; pg:group <http://ourpad.casa/plugins/oplabs-band-bus#ch1> ] ,
[ a lv2:InputPort , lv2:ControlPort ; lv2:index 20 ; lv2:symbol "ch1Mute" ; lv2:name "Ch 1 Mute" ; lv2:default 0.0 ; lv2:minimum 0.0 ; lv2:maximum 1.0 ; lv2:portProperty lv2:toggled ; lv2:scalePoint [ rdfs:label "Off" ; rdf:value 0.0 ] , [ rdfs:label "On" ; rdf:value 1.0 ] ; pg:group <http://ourpad.casa/plugins/oplabs-band-bus#ch1> ] ,
## Ch 2
[ a lv2:InputPort , lv2:ControlPort ; lv2:index 21 ; lv2:symbol "ch2Vol" ; lv2:name "Ch 2 Vol" ; lv2:default 0.0 ; lv2:minimum -60.0 ; lv2:maximum 6.0 ; units:unit units:db ; pg:group <http://ourpad.casa/plugins/oplabs-band-bus#ch2> ] ,
[ a lv2:InputPort , lv2:ControlPort ; lv2:index 22 ; lv2:symbol "ch2Pan" ; lv2:name "Ch 2 Pan" ; lv2:default 0.0 ; lv2:minimum -1.0 ; lv2:maximum 1.0 ; pg:group <http://ourpad.casa/plugins/oplabs-band-bus#ch2> ] ,
[ a lv2:InputPort , lv2:ControlPort ; lv2:index 23 ; lv2:symbol "ch2Mute" ; lv2:name "Ch 2 Mute" ; lv2:default 0.0 ; lv2:minimum 0.0 ; lv2:maximum 1.0 ; lv2:portProperty lv2:toggled ; lv2:scalePoint [ rdfs:label "Off" ; rdf:value 0.0 ] , [ rdfs:label "On" ; rdf:value 1.0 ] ; pg:group <http://ourpad.casa/plugins/oplabs-band-bus#ch2> ] ,
## Ch 3
[ a lv2:InputPort , lv2:ControlPort ; lv2:index 24 ; lv2:symbol "ch3Vol" ; lv2:name "Ch 3 Vol" ; lv2:default 0.0 ; lv2:minimum -60.0 ; lv2:maximum 6.0 ; units:unit units:db ; pg:group <http://ourpad.casa/plugins/oplabs-band-bus#ch3> ] ,
[ a lv2:InputPort , lv2:ControlPort ; lv2:index 25 ; lv2:symbol "ch3Pan" ; lv2:name "Ch 3 Pan" ; lv2:default 0.0 ; lv2:minimum -1.0 ; lv2:maximum 1.0 ; pg:group <http://ourpad.casa/plugins/oplabs-band-bus#ch3> ] ,
[ a lv2:InputPort , lv2:ControlPort ; lv2:index 26 ; lv2:symbol "ch3Mute" ; lv2:name "Ch 3 Mute" ; lv2:default 0.0 ; lv2:minimum 0.0 ; lv2:maximum 1.0 ; lv2:portProperty lv2:toggled ; lv2:scalePoint [ rdfs:label "Off" ; rdf:value 0.0 ] , [ rdfs:label "On" ; rdf:value 1.0 ] ; pg:group <http://ourpad.casa/plugins/oplabs-band-bus#ch3> ] ,
## Ch 4
[ a lv2:InputPort , lv2:ControlPort ; lv2:index 27 ; lv2:symbol "ch4Vol" ; lv2:name "Ch 4 Vol" ; lv2:default 0.0 ; lv2:minimum -60.0 ; lv2:maximum 6.0 ; units:unit units:db ; pg:group <http://ourpad.casa/plugins/oplabs-band-bus#ch4> ] ,
[ a lv2:InputPort , lv2:ControlPort ; lv2:index 28 ; lv2:symbol "ch4Pan" ; lv2:name "Ch 4 Pan" ; lv2:default 0.0 ; lv2:minimum -1.0 ; lv2:maximum 1.0 ; pg:group <http://ourpad.casa/plugins/oplabs-band-bus#ch4> ] ,
[ a lv2:InputPort , lv2:ControlPort ; lv2:index 29 ; lv2:symbol "ch4Mute" ; lv2:name "Ch 4 Mute" ; lv2:default 0.0 ; lv2:minimum 0.0 ; lv2:maximum 1.0 ; lv2:portProperty lv2:toggled ; lv2:scalePoint [ rdfs:label "Off" ; rdf:value 0.0 ] , [ rdfs:label "On" ; rdf:value 1.0 ] ; pg:group <http://ourpad.casa/plugins/oplabs-band-bus#ch4> ] ,
## Ch 5
[ a lv2:InputPort , lv2:ControlPort ; lv2:index 30 ; lv2:symbol "ch5Vol" ; lv2:name "Ch 5 Vol" ; lv2:default 0.0 ; lv2:minimum -60.0 ; lv2:maximum 6.0 ; units:unit units:db ; pg:group <http://ourpad.casa/plugins/oplabs-band-bus#ch5> ] ,
[ a lv2:InputPort , lv2:ControlPort ; lv2:index 31 ; lv2:symbol "ch5Pan" ; lv2:name "Ch 5 Pan" ; lv2:default 0.0 ; lv2:minimum -1.0 ; lv2:maximum 1.0 ; pg:group <http://ourpad.casa/plugins/oplabs-band-bus#ch5> ] ,
[ a lv2:InputPort , lv2:ControlPort ; lv2:index 32 ; lv2:symbol "ch5Mute" ; lv2:name "Ch 5 Mute" ; lv2:default 0.0 ; lv2:minimum 0.0 ; lv2:maximum 1.0 ; lv2:portProperty lv2:toggled ; lv2:scalePoint [ rdfs:label "Off" ; rdf:value 0.0 ] , [ rdfs:label "On" ; rdf:value 1.0 ] ; pg:group <http://ourpad.casa/plugins/oplabs-band-bus#ch5> ] ,
## Ch 6
[ a lv2:InputPort , lv2:ControlPort ; lv2:index 33 ; lv2:symbol "ch6Vol" ; lv2:name "Ch 6 Vol" ; lv2:default 0.0 ; lv2:minimum -60.0 ; lv2:maximum 6.0 ; units:unit units:db ; pg:group <http://ourpad.casa/plugins/oplabs-band-bus#ch6> ] ,
[ a lv2:InputPort , lv2:ControlPort ; lv2:index 34 ; lv2:symbol "ch6Pan" ; lv2:name "Ch 6 Pan" ; lv2:default 0.0 ; lv2:minimum -1.0 ; lv2:maximum 1.0 ; pg:group <http://ourpad.casa/plugins/oplabs-band-bus#ch6> ] ,
[ a lv2:InputPort , lv2:ControlPort ; lv2:index 35 ; lv2:symbol "ch6Mute" ; lv2:name "Ch 6 Mute" ; lv2:default 0.0 ; lv2:minimum 0.0 ; lv2:maximum 1.0 ; lv2:portProperty lv2:toggled ; lv2:scalePoint [ rdfs:label "Off" ; rdf:value 0.0 ] , [ rdfs:label "On" ; rdf:value 1.0 ] ; pg:group <http://ourpad.casa/plugins/oplabs-band-bus#ch6> ] ,
## Ch 7
[ a lv2:InputPort , lv2:ControlPort ; lv2:index 36 ; lv2:symbol "ch7Vol" ; lv2:name "Ch 7 Vol" ; lv2:default 0.0 ; lv2:minimum -60.0 ; lv2:maximum 6.0 ; units:unit units:db ; pg:group <http://ourpad.casa/plugins/oplabs-band-bus#ch7> ] ,
[ a lv2:InputPort , lv2:ControlPort ; lv2:index 37 ; lv2:symbol "ch7Pan" ; lv2:name "Ch 7 Pan" ; lv2:default 0.0 ; lv2:minimum -1.0 ; lv2:maximum 1.0 ; pg:group <http://ourpad.casa/plugins/oplabs-band-bus#ch7> ] ,
[ a lv2:InputPort , lv2:ControlPort ; lv2:index 38 ; lv2:symbol "ch7Mute" ; lv2:name "Ch 7 Mute" ; lv2:default 0.0 ; lv2:minimum 0.0 ; lv2:maximum 1.0 ; lv2:portProperty lv2:toggled ; lv2:scalePoint [ rdfs:label "Off" ; rdf:value 0.0 ] , [ rdfs:label "On" ; rdf:value 1.0 ] ; pg:group <http://ourpad.casa/plugins/oplabs-band-bus#ch7> ] ,
## Ch 8
[ a lv2:InputPort , lv2:ControlPort ; lv2:index 39 ; lv2:symbol "ch8Vol" ; lv2:name "Ch 8 Vol" ; lv2:default 0.0 ; lv2:minimum -60.0 ; lv2:maximum 6.0 ; units:unit units:db ; pg:group <http://ourpad.casa/plugins/oplabs-band-bus#ch8> ] ,
[ a lv2:InputPort , lv2:ControlPort ; lv2:index 40 ; lv2:symbol "ch8Pan" ; lv2:name "Ch 8 Pan" ; lv2:default 0.0 ; lv2:minimum -1.0 ; lv2:maximum 1.0 ; pg:group <http://ourpad.casa/plugins/oplabs-band-bus#ch8> ] ,
[ a lv2:InputPort , lv2:ControlPort ; lv2:index 41 ; lv2:symbol "ch8Mute" ; lv2:name "Ch 8 Mute" ; lv2:default 0.0 ; lv2:minimum 0.0 ; lv2:maximum 1.0 ; lv2:portProperty lv2:toggled ; lv2:scalePoint [ rdfs:label "Off" ; rdf:value 0.0 ] , [ rdfs:label "On" ; rdf:value 1.0 ] ; pg:group <http://ourpad.casa/plugins/oplabs-band-bus#ch8> ] ,
## --- MASTER CONTROL INPUT PORTS (2) ---
[ a lv2:InputPort , lv2:ControlPort ; lv2:index 42 ; lv2:symbol "masterVol" ; lv2:name "Master Vol" ; lv2:default 0.0 ; lv2:minimum -60.0 ; lv2:maximum 6.0 ; units:unit units:db ] ,
[ a lv2:InputPort , lv2:ControlPort ; lv2:index 43 ; lv2:symbol "masterMute" ; lv2:name "Master Mute" ; lv2:default 0.0 ; lv2:minimum 0.0 ; lv2:maximum 1.0 ; lv2:portProperty lv2:toggled ; lv2:scalePoint [ rdfs:label "Off" ; rdf:value 0.0 ] , [ rdfs:label "On" ; rdf:value 1.0 ] ] ,
## --- CONTROL OUTPUT PORTS — PER-CHANNEL LEVEL METERS (16) ---
[ a lv2:OutputPort , lv2:ControlPort ; lv2:index 44 ; lv2:symbol "ch1LevelL" ; lv2:name "Ch 1 Lvl L" ; lv2:default -70.0 ; lv2:minimum -70.0 ; lv2:maximum 6.0 ; units:unit units:db ; lv2:portProperty epp:notOnGUI ] ,
[ a lv2:OutputPort , lv2:ControlPort ; lv2:index 45 ; lv2:symbol "ch1LevelR" ; lv2:name "Ch 1 Lvl R" ; lv2:default -70.0 ; lv2:minimum -70.0 ; lv2:maximum 6.0 ; units:unit units:db ; lv2:portProperty epp:notOnGUI ] ,
[ a lv2:OutputPort , lv2:ControlPort ; lv2:index 46 ; lv2:symbol "ch2LevelL" ; lv2:name "Ch 2 Lvl L" ; lv2:default -70.0 ; lv2:minimum -70.0 ; lv2:maximum 6.0 ; units:unit units:db ; lv2:portProperty epp:notOnGUI ] ,
[ a lv2:OutputPort , lv2:ControlPort ; lv2:index 47 ; lv2:symbol "ch2LevelR" ; lv2:name "Ch 2 Lvl R" ; lv2:default -70.0 ; lv2:minimum -70.0 ; lv2:maximum 6.0 ; units:unit units:db ; lv2:portProperty epp:notOnGUI ] ,
[ a lv2:OutputPort , lv2:ControlPort ; lv2:index 48 ; lv2:symbol "ch3LevelL" ; lv2:name "Ch 3 Lvl L" ; lv2:default -70.0 ; lv2:minimum -70.0 ; lv2:maximum 6.0 ; units:unit units:db ; lv2:portProperty epp:notOnGUI ] ,
[ a lv2:OutputPort , lv2:ControlPort ; lv2:index 49 ; lv2:symbol "ch3LevelR" ; lv2:name "Ch 3 Lvl R" ; lv2:default -70.0 ; lv2:minimum -70.0 ; lv2:maximum 6.0 ; units:unit units:db ; lv2:portProperty epp:notOnGUI ] ,
[ a lv2:OutputPort , lv2:ControlPort ; lv2:index 50 ; lv2:symbol "ch4LevelL" ; lv2:name "Ch 4 Lvl L" ; lv2:default -70.0 ; lv2:minimum -70.0 ; lv2:maximum 6.0 ; units:unit units:db ; lv2:portProperty epp:notOnGUI ] ,
[ a lv2:OutputPort , lv2:ControlPort ; lv2:index 51 ; lv2:symbol "ch4LevelR" ; lv2:name "Ch 4 Lvl R" ; lv2:default -70.0 ; lv2:minimum -70.0 ; lv2:maximum 6.0 ; units:unit units:db ; lv2:portProperty epp:notOnGUI ] ,
[ a lv2:OutputPort , lv2:ControlPort ; lv2:index 52 ; lv2:symbol "ch5LevelL" ; lv2:name "Ch 5 Lvl L" ; lv2:default -70.0 ; lv2:minimum -70.0 ; lv2:maximum 6.0 ; units:unit units:db ; lv2:portProperty epp:notOnGUI ] ,
[ a lv2:OutputPort , lv2:ControlPort ; lv2:index 53 ; lv2:symbol "ch5LevelR" ; lv2:name "Ch 5 Lvl R" ; lv2:default -70.0 ; lv2:minimum -70.0 ; lv2:maximum 6.0 ; units:unit units:db ; lv2:portProperty epp:notOnGUI ] ,
[ a lv2:OutputPort , lv2:ControlPort ; lv2:index 54 ; lv2:symbol "ch6LevelL" ; lv2:name "Ch 6 Lvl L" ; lv2:default -70.0 ; lv2:minimum -70.0 ; lv2:maximum 6.0 ; units:unit units:db ; lv2:portProperty epp:notOnGUI ] ,
[ a lv2:OutputPort , lv2:ControlPort ; lv2:index 55 ; lv2:symbol "ch6LevelR" ; lv2:name "Ch 6 Lvl R" ; lv2:default -70.0 ; lv2:minimum -70.0 ; lv2:maximum 6.0 ; units:unit units:db ; lv2:portProperty epp:notOnGUI ] ,
[ a lv2:OutputPort , lv2:ControlPort ; lv2:index 56 ; lv2:symbol "ch7LevelL" ; lv2:name "Ch 7 Lvl L" ; lv2:default -70.0 ; lv2:minimum -70.0 ; lv2:maximum 6.0 ; units:unit units:db ; lv2:portProperty epp:notOnGUI ] ,
[ a lv2:OutputPort , lv2:ControlPort ; lv2:index 57 ; lv2:symbol "ch7LevelR" ; lv2:name "Ch 7 Lvl R" ; lv2:default -70.0 ; lv2:minimum -70.0 ; lv2:maximum 6.0 ; units:unit units:db ; lv2:portProperty epp:notOnGUI ] ,
[ a lv2:OutputPort , lv2:ControlPort ; lv2:index 58 ; lv2:symbol "ch8LevelL" ; lv2:name "Ch 8 Lvl L" ; lv2:default -70.0 ; lv2:minimum -70.0 ; lv2:maximum 6.0 ; units:unit units:db ; lv2:portProperty epp:notOnGUI ] ,
[ a lv2:OutputPort , lv2:ControlPort ; lv2:index 59 ; lv2:symbol "ch8LevelR" ; lv2:name "Ch 8 Lvl R" ; lv2:default -70.0 ; lv2:minimum -70.0 ; lv2:maximum 6.0 ; units:unit units:db ; lv2:portProperty epp:notOnGUI ] ,
## --- MASTER LEVEL METER OUTPUT PORTS (2) ---
[ a lv2:OutputPort , lv2:ControlPort ; lv2:index 60 ; lv2:symbol "masterLevelL" ; lv2:name "Master Lvl L" ; lv2:default -70.0 ; lv2:minimum -70.0 ; lv2:maximum 6.0 ; units:unit units:db ; lv2:portProperty epp:notOnGUI ] ,
[ a lv2:OutputPort , lv2:ControlPort ; lv2:index 61 ; lv2:symbol "masterLevelR" ; lv2:name "Master Lvl R" ; lv2:default -70.0 ; lv2:minimum -70.0 ; lv2:maximum 6.0 ; units:unit units:db ; lv2:portProperty epp:notOnGUI ]
.
# Port group definitions
<http://ourpad.casa/plugins/oplabs-band-bus#ch1> a pg:InputGroup ; lv2:name "Channel 1" ; lv2:symbol "ch1" .
<http://ourpad.casa/plugins/oplabs-band-bus#ch2> a pg:InputGroup ; lv2:name "Channel 2" ; lv2:symbol "ch2" .
<http://ourpad.casa/plugins/oplabs-band-bus#ch3> a pg:InputGroup ; lv2:name "Channel 3" ; lv2:symbol "ch3" .
<http://ourpad.casa/plugins/oplabs-band-bus#ch4> a pg:InputGroup ; lv2:name "Channel 4" ; lv2:symbol "ch4" .
<http://ourpad.casa/plugins/oplabs-band-bus#ch5> a pg:InputGroup ; lv2:name "Channel 5" ; lv2:symbol "ch5" .
<http://ourpad.casa/plugins/oplabs-band-bus#ch6> a pg:InputGroup ; lv2:name "Channel 6" ; lv2:symbol "ch6" .
<http://ourpad.casa/plugins/oplabs-band-bus#ch7> a pg:InputGroup ; lv2:name "Channel 7" ; lv2:symbol "ch7" .
<http://ourpad.casa/plugins/oplabs-band-bus#ch8> a pg:InputGroup ; lv2:name "Channel 8" ; lv2:symbol "ch8" .
+7
View File
@@ -0,0 +1,7 @@
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
<http://ourpad.casa/plugins/oplabs-band-bus>
a lv2:Plugin ;
lv2:binary <OPLabsBandBus.so> ;
rdfs:seeAlso <OPLabsBandBus.ttl> .
+679
View File
@@ -0,0 +1,679 @@
/* ===== OPLabs Band Bus - ModGUI Application ===== */
(function () {
'use strict';
// ---- Constants ----
var NUM_CHANNELS = 8;
var DB_MIN = -70; // meter min
var DB_MIN_VOL = -60; // volume min
var DB_MAX = 6; // max value (both vol and meter)
var CHANNEL_NAMES = [
'Ch 1', 'Ch 2', 'Ch 3', 'Ch 4',
'Ch 5', 'Ch 6', 'Ch 7', 'Ch 8'
];
// ---- State ----
var state = {
channels: [],
masterVol: 0,
masterMute: 0,
masterLevelL: DB_MIN,
masterLevelR: DB_MIN
};
// Initialize channel state
for (var i = 0; i < NUM_CHANNELS; i++) {
state.channels.push({
vol: 0,
mute: 0,
levelL: DB_MIN,
levelR: DB_MIN
});
}
// Peak hold state
var peakHold = {};
var peakTimers = {};
var PEAK_HOLD_MS = 1500;
// Drag state for faders
var dragState = null;
// ---- DOM References ----
var els = {};
// ---- Build Channel Strips ----
function buildChannelStrips() {
var container = document.getElementById('busChannels');
for (var i = 0; i < NUM_CHANNELS; i++) {
var ch = document.createElement('div');
ch.className = 'ch-strip';
ch.dataset.channel = i;
ch.id = 'chStrip' + i;
// Label
var label = document.createElement('div');
label.className = 'ch-strip-label';
label.textContent = CHANNEL_NAMES[i];
// Mute button
var muteBtn = document.createElement('button');
muteBtn.className = 'ch-strip-mute';
muteBtn.id = 'chMute' + i;
muteBtn.title = 'Mute ' + CHANNEL_NAMES[i];
muteBtn.textContent = 'M';
muteBtn.addEventListener('click', makeMuteHandler(i));
// Mini stereo meter
var meterDiv = document.createElement('div');
meterDiv.className = 'ch-strip-meter';
var meterL = makeMiniMeter('ch' + i + 'L');
var meterR = makeMiniMeter('ch' + i + 'R');
meterDiv.appendChild(meterL);
meterDiv.appendChild(meterR);
// Mini fader
var faderDiv = document.createElement('div');
faderDiv.className = 'ch-strip-fader';
var faderLabel = document.createElement('div');
faderLabel.className = 'fader-label';
faderLabel.textContent = 'Vol';
var faderTrack = document.createElement('div');
faderTrack.className = 'fader-track';
faderTrack.id = 'chFaderTrack' + i;
var faderFill = document.createElement('div');
faderFill.className = 'fader-fill';
faderFill.id = 'chFaderFill' + i;
var faderThumb = document.createElement('div');
faderThumb.className = 'fader-thumb';
faderThumb.id = 'chFaderThumb' + i;
faderThumb.addEventListener('pointerdown', makeFaderPointerDown(i));
faderThumb.addEventListener('touchstart', makeFaderTouchStart(i), { passive: false });
faderTrack.appendChild(faderFill);
faderTrack.appendChild(faderThumb);
var faderValue = document.createElement('div');
faderValue.className = 'fader-value';
faderValue.id = 'chFaderValue' + i;
faderValue.textContent = '0.0';
faderDiv.appendChild(faderLabel);
faderDiv.appendChild(faderTrack);
faderDiv.appendChild(faderValue);
// Assemble
ch.appendChild(label);
ch.appendChild(muteBtn);
ch.appendChild(meterDiv);
ch.appendChild(faderDiv);
container.appendChild(ch);
// Cache DOM refs
els['chMute' + i] = muteBtn;
els['chMeterFill' + i + 'L'] = meterL.querySelector('.meter-fill');
els['chMeterFill' + i + 'R'] = meterR.querySelector('.meter-fill');
els['chMeterPeak' + i + 'L'] = meterL.querySelector('.meter-peak');
els['chMeterPeak' + i + 'R'] = meterR.querySelector('.meter-peak');
els['chFaderFill' + i] = faderFill;
els['chFaderThumb' + i] = faderThumb;
els['chFaderValue' + i] = faderValue;
els['chStrip' + i] = ch;
// Init peak hold
peakHold['ch' + i + 'L'] = DB_MIN;
peakHold['ch' + i + 'R'] = DB_MIN;
peakTimers['ch' + i + 'L'] = null;
peakTimers['ch' + i + 'R'] = null;
}
}
function makeMiniMeter(idPrefix) {
var div = document.createElement('div');
div.className = 'meter-channel';
var label = document.createElement('span');
label.className = 'meter-label';
label.textContent = idPrefix.charAt(idPrefix.length - 1); // L or R
var track = document.createElement('div');
track.className = 'meter-track';
var fill = document.createElement('div');
fill.className = 'meter-fill';
var peak = document.createElement('div');
peak.className = 'meter-peak';
var tick20 = document.createElement('div');
tick20.className = 'meter-tick';
tick20.style.bottom = '80%';
var tick50 = document.createElement('div');
tick50.className = 'meter-tick';
tick50.style.bottom = '50%';
var tick80 = document.createElement('div');
tick80.className = 'meter-tick';
tick80.style.bottom = '20%';
track.appendChild(fill);
track.appendChild(peak);
track.appendChild(tick20);
track.appendChild(tick50);
track.appendChild(tick80);
div.appendChild(label);
div.appendChild(track);
return div;
}
// ---- Mute button handler factory ----
function makeMuteHandler(chIdx) {
return function () {
var symbol = 'ch' + (chIdx + 1) + 'Mute';
var newVal = state.channels[chIdx].mute >= 0.5 ? 0 : 1;
state.channels[chIdx].mute = newVal;
sendValue(symbol, newVal);
updateChannelMute(chIdx, newVal);
};
}
// ---- Fader drag handler factories ----
function makeFaderPointerDown(chIdx) {
return function (e) {
e.preventDefault();
startFaderDrag(chIdx, e.clientY);
};
}
function makeFaderTouchStart(chIdx) {
return function (e) {
e.preventDefault();
startFaderDrag(chIdx, e.touches[0].clientY);
};
}
function startFaderDrag(chIdx, clientY) {
if (dragState) return;
var symbol = 'ch' + (chIdx + 1) + 'Vol';
dragState = {
chIdx: chIdx,
symbol: symbol,
startY: clientY,
startVal: state.channels[chIdx].vol
};
document.addEventListener('pointermove', onFaderPointerMove);
document.addEventListener('pointerup', onFaderPointerUp);
document.addEventListener('touchmove', onFaderTouchMove, { passive: false });
document.addEventListener('touchend', onFaderPointerUp);
}
function onFaderPointerMove(e) {
if (!dragState) return;
e.preventDefault();
dragFader(e.clientY);
}
function onFaderTouchMove(e) {
if (!dragState) return;
e.preventDefault();
dragFader(e.touches[0].clientY);
}
function dragFader(clientY) {
var d = dragState;
var deltaY = d.startY - clientY;
var range = DB_MAX - DB_MIN_VOL; // 66
var deltaVal = (deltaY / 200) * range; // 200px for full range
var newVal = clamp(d.startVal + deltaVal, DB_MIN_VOL, DB_MAX);
// Snap to 0.5 dB steps
newVal = Math.round(newVal * 2) / 2;
newVal = clamp(newVal, DB_MIN_VOL, DB_MAX);
state.channels[d.chIdx].vol = newVal;
sendValue(d.symbol, newVal);
updateChannelFader(d.chIdx, newVal);
}
function onFaderPointerUp() {
if (!dragState) return;
dragState = null;
document.removeEventListener('pointermove', onFaderPointerMove);
document.removeEventListener('pointerup', onFaderPointerUp);
document.removeEventListener('touchmove', onFaderTouchMove);
document.removeEventListener('touchend', onFaderPointerUp);
}
// ---- Master fader drag ----
function masterFaderPointerDown(e) {
e.preventDefault();
if (dragState) return;
dragState = {
master: true,
startY: e.clientY,
startVal: state.masterVol
};
document.addEventListener('pointermove', onMasterFaderMove);
document.addEventListener('pointerup', onMasterFaderUp);
document.addEventListener('touchmove', onMasterFaderTouchMove, { passive: false });
document.addEventListener('touchend', onMasterFaderUp);
}
function masterFaderTouchStart(e) {
e.preventDefault();
if (dragState) return;
dragState = {
master: true,
startY: e.touches[0].clientY,
startVal: state.masterVol
};
document.addEventListener('pointermove', onMasterFaderMove);
document.addEventListener('pointerup', onMasterFaderUp);
document.addEventListener('touchmove', onMasterFaderTouchMove, { passive: false });
document.addEventListener('touchend', onMasterFaderUp);
}
function onMasterFaderMove(e) { if (dragState) { e.preventDefault(); dragMasterFader(e.clientY); } }
function onMasterFaderTouchMove(e) { if (dragState) { e.preventDefault(); dragMasterFader(e.touches[0].clientY); } }
function dragMasterFader(clientY) {
var d = dragState;
var deltaY = d.startY - clientY;
var range = DB_MAX - DB_MIN_VOL;
var deltaVal = (deltaY / 200) * range;
var newVal = clamp(d.startVal + deltaVal, DB_MIN_VOL, DB_MAX);
newVal = Math.round(newVal * 2) / 2;
newVal = clamp(newVal, DB_MIN_VOL, DB_MAX);
state.masterVol = newVal;
sendValue('masterVol', newVal);
updateMasterFader(newVal);
}
function onMasterFaderUp() {
if (!dragState) return;
dragState = null;
document.removeEventListener('pointermove', onMasterFaderMove);
document.removeEventListener('pointerup', onMasterFaderUp);
document.removeEventListener('touchmove', onMasterFaderTouchMove);
document.removeEventListener('touchend', onMasterFaderUp);
}
// ---- Cache static DOM elements ----
function cacheElements() {
els.masterBtnMute = document.getElementById('masterBtnMute');
els.masterMeterFillL = document.getElementById('masterMeterFillL');
els.masterMeterFillR = document.getElementById('masterMeterFillR');
els.masterMeterPeakL = document.getElementById('masterMeterPeakL');
els.masterMeterPeakR = document.getElementById('masterMeterPeakR');
els.masterFaderFill = document.getElementById('masterFaderFill');
els.masterFaderThumb = document.getElementById('masterFaderThumb');
els.masterFaderReadout = document.getElementById('masterFaderReadout');
els.masterDbReadout = document.getElementById('masterDbReadout');
els.masterSection = document.querySelector('.master-section');
els.masterFaderTrack = document.getElementById('masterFaderTrack');
// Init peak holds for master
peakHold['masterL'] = DB_MIN;
peakHold['masterR'] = DB_MIN;
peakTimers['masterL'] = null;
peakTimers['masterR'] = null;
}
// ---- Utility ----
function clamp(val, min, max) {
return Math.min(max, Math.max(min, val));
}
function dbToPercent(db) {
var clamped = clamp(db, DB_MIN, DB_MAX);
var normalized = (clamped - DB_MIN) / (DB_MAX - DB_MIN);
return Math.sqrt(normalized) * 100;
}
function getMeterColor(pct) {
if (pct < 60) return 'var(--meter-green)';
if (pct < 85) return 'var(--meter-yellow)';
return 'var(--meter-red)';
}
// ---- Send value to host ----
function sendValue(symbol, value) {
if (window.modguijs && typeof window.modguijs.setValue === 'function') {
window.modguijs.setValue(symbol, value);
}
}
// ---- Update functions ----
// Channel mute
function updateChannelMute(chIdx, val) {
var active = val >= 0.5;
var btn = els['chMute' + chIdx];
var strip = els['chStrip' + chIdx];
btn.classList.toggle('active', active);
strip.classList.toggle('muted', active);
}
// Channel fader
function updateChannelFader(chIdx, val) {
var pct = dbToPercent(val);
var fill = els['chFaderFill' + chIdx];
var thumb = els['chFaderThumb' + chIdx];
var valueEl = els['chFaderValue' + chIdx];
// Fader fill: percentage from bottom
fill.style.height = Math.min(100, pct) + '%';
// Thumb position: also from bottom
var thumbPct = Math.min(100, pct);
thumb.style.bottom = 'calc(' + thumbPct + '% - 3px)';
// Display
var display = val <= DB_MIN_VOL ? '-∞' : val.toFixed(1);
valueEl.textContent = display;
}
// Channel meter
function updateChannelMeter(chIdx) {
var ch = state.channels[chIdx];
updateMeterBar('ch' + chIdx, 'L', ch.levelL, els['chMeterFill' + chIdx + 'L'], els['chMeterPeak' + chIdx + 'L']);
updateMeterBar('ch' + chIdx, 'R', ch.levelR, els['chMeterFill' + chIdx + 'R'], els['chMeterPeak' + chIdx + 'R']);
}
function updateMeterBar(chKey, side, level, fillEl, peakEl) {
var pct = dbToPercent(level);
fillEl.style.height = Math.min(100, pct) + '%';
fillEl.style.background = getMeterColor(pct);
fillEl.className = 'meter-fill' + (pct >= 85 ? ' hot' : pct >= 60 ? ' warm' : '');
// Peak hold
var pkKey = chKey + side;
if (level > peakHold[pkKey]) {
peakHold[pkKey] = level;
if (peakTimers[pkKey]) { clearTimeout(peakTimers[pkKey]); }
peakTimers[pkKey] = setTimeout(function () {
peakHold[pkKey] = DB_MIN;
var pkPct = dbToPercent(DB_MIN);
peakEl.style.bottom = Math.min(100, pkPct) + '%';
}, PEAK_HOLD_MS);
}
peakEl.style.bottom = Math.min(100, pct) + '%';
}
// Master mute
function updateMasterMute(val) {
var active = val >= 0.5;
els.masterBtnMute.classList.toggle('active', active);
els.masterSection.classList.toggle('muted', active);
}
// Master fader
function updateMasterFader(val) {
var pct = dbToPercent(val);
els.masterFaderFill.style.height = Math.min(100, pct) + '%';
var thumbPct = Math.min(100, pct);
els.masterFaderThumb.style.bottom = 'calc(' + thumbPct + '% - 4px)';
var display = val <= DB_MIN_VOL ? '-∞' : val.toFixed(1);
els.masterFaderReadout.textContent = display;
}
// Master meter
function updateMasterMeter() {
updateMeterBar('master', 'L', state.masterLevelL, els.masterMeterFillL, els.masterMeterPeakL);
updateMeterBar('master', 'R', state.masterLevelR, els.masterMeterFillR, els.masterMeterPeakR);
// dB readout
var dbL = state.masterLevelL <= DB_MIN ? '-∞' : state.masterLevelL.toFixed(1);
var dbR = state.masterLevelR <= DB_MIN ? '-∞' : state.masterLevelR.toFixed(1);
els.masterDbReadout.innerHTML =
'L: <span class="' + (state.masterLevelL > -10 ? 'hot' : '') + '">' + dbL + '</span>' +
' R: <span class="' + (state.masterLevelR > -10 ? 'hot' : '') + '">' + dbR + '</span>';
}
// ---- Full UI update ----
function updateAll() {
// Channels
for (var i = 0; i < NUM_CHANNELS; i++) {
updateChannelMute(i, state.channels[i].mute);
updateChannelFader(i, state.channels[i].vol);
updateChannelMeter(i);
}
// Master
updateMasterMute(state.masterMute);
updateMasterFader(state.masterVol);
updateMasterMeter();
}
// ---- UI Event Handlers ----
function setupUIHandlers() {
// Master mute button
els.masterBtnMute.addEventListener('click', function () {
var newVal = state.masterMute >= 0.5 ? 0 : 1;
state.masterMute = newVal;
sendValue('masterMute', newVal);
updateMasterMute(newVal);
});
// Master fader
els.masterFaderThumb.addEventListener('pointerdown', masterFaderPointerDown);
els.masterFaderThumb.addEventListener('touchstart', masterFaderTouchStart, { passive: false });
}
// ---- ModGUI API Integration ----
function setupModGUI() {
var paramSymbols = [];
// Per-channel params
for (var i = 1; i <= NUM_CHANNELS; i++) {
paramSymbols.push('ch' + i + 'Vol');
paramSymbols.push('ch' + i + 'Mute');
}
// Master params
paramSymbols.push('masterVol');
paramSymbols.push('masterMute');
// Meter symbols (output only, for reading)
var meterSymbols = [];
for (var i = 1; i <= NUM_CHANNELS; i++) {
meterSymbols.push('ch' + i + 'LevelL');
meterSymbols.push('ch' + i + 'LevelR');
}
meterSymbols.push('masterLevelL');
meterSymbols.push('masterLevelR');
// Helper to get channel index from port symbol
function chIdxFromSymbol(symbol) {
var m = symbol.match(/^ch(\d+)/);
return m ? (parseInt(m[1], 10) - 1) : -1;
}
if (window.modguijs) {
// Read initial values
var allSymbols = paramSymbols.concat(meterSymbols);
allSymbols.forEach(function (symbol) {
if (typeof window.modguijs.getValue === 'function') {
try {
var val = window.modguijs.getValue(symbol);
if (val !== undefined && val !== null) {
applyValue(symbol, val);
}
} catch (e) { /* ignore */ }
}
});
// Subscribe to changes
if (typeof window.modguijs.onChange === 'function') {
allSymbols.forEach(function (symbol) {
window.modguijs.onChange(symbol, function (value) {
applyValue(symbol, value);
});
});
}
// Fallback polling if no onChange
if (typeof window.modguijs.onChange !== 'function') {
startPolling(paramSymbols, meterSymbols);
}
} else {
// Retry after delay
setTimeout(function () {
if (window.modguijs) {
setupModGUI();
} else {
startDemoMode();
}
}, 500);
}
}
// ---- Apply a value to state and update UI ----
function applyValue(symbol, value) {
var m = symbol.match(/^ch(\d+)(Vol|Mute|Level[LR])$/);
if (m) {
var chIdx = parseInt(m[1], 10) - 1;
var param = m[2];
if (chIdx >= 0 && chIdx < NUM_CHANNELS) {
if (param === 'Vol') {
state.channels[chIdx].vol = value;
updateChannelFader(chIdx, value);
} else if (param === 'Mute') {
state.channels[chIdx].mute = value;
updateChannelMute(chIdx, value);
} else if (param === 'LevelL') {
state.channels[chIdx].levelL = value;
updateChannelMeter(chIdx);
} else if (param === 'LevelR') {
state.channels[chIdx].levelR = value;
updateChannelMeter(chIdx);
}
return;
}
}
// Master params
if (symbol === 'masterVol') {
state.masterVol = value;
updateMasterFader(value);
} else if (symbol === 'masterMute') {
state.masterMute = value;
updateMasterMute(value);
} else if (symbol === 'masterLevelL') {
state.masterLevelL = value;
updateMasterMeter();
} else if (symbol === 'masterLevelR') {
state.masterLevelR = value;
updateMasterMeter();
}
}
// ---- Polling fallback ----
var pollInterval = null;
var pollSymbols = [];
function startPolling(paramSymbols, meterSymbols) {
pollSymbols = paramSymbols.concat(meterSymbols);
if (pollInterval) return;
pollInterval = setInterval(function () {
if (!window.modguijs || typeof window.modguijs.getValue !== 'function') return;
pollSymbols.forEach(function (symbol) {
try {
var val = window.modguijs.getValue(symbol);
if (val !== undefined && val !== null) {
// Only update if changed
var current = getCurrentValue(symbol);
if (current === undefined || Math.abs(val - current) > 0.001) {
applyValue(symbol, val);
}
}
} catch (e) { /* ignore */ }
});
}, 50);
}
function getCurrentValue(symbol) {
var m = symbol.match(/^ch(\d+)(Vol|Mute|Level[LR])$/);
if (m) {
var chIdx = parseInt(m[1], 10) - 1;
if (chIdx >= 0 && chIdx < NUM_CHANNELS) {
var param = m[2];
if (param === 'Vol') return state.channels[chIdx].vol;
if (param === 'Mute') return state.channels[chIdx].mute;
if (param === 'LevelL') return state.channels[chIdx].levelL;
if (param === 'LevelR') return state.channels[chIdx].levelR;
}
return undefined;
}
if (symbol === 'masterVol') return state.masterVol;
if (symbol === 'masterMute') return state.masterMute;
if (symbol === 'masterLevelL') return state.masterLevelL;
if (symbol === 'masterLevelR') return state.masterLevelR;
return undefined;
}
// ---- Demo mode ----
var demoInterval = null;
function startDemoMode() {
console.log('OPLabs Band Bus: No modguijs API found, running demo mode');
var t = 0;
demoInterval = setInterval(function () {
t += 0.05;
// Simulate different levels per channel
for (var i = 0; i < NUM_CHANNELS; i++) {
var offset = i * 0.3 + Math.sin(t * 0.1 + i) * 0.2;
var lvl = -50 + 45 * (Math.sin(t + offset) * 0.5 + 0.5);
var lvr = -50 + 45 * (Math.cos(t * 0.7 + offset) * 0.5 + 0.5);
state.channels[i].levelL = lvl;
state.channels[i].levelR = lvr;
updateChannelMeter(i);
}
state.masterLevelL = -30 + 25 * (Math.sin(t * 0.5) * 0.5 + 0.5);
state.masterLevelR = -30 + 25 * (Math.cos(t * 0.5 + 0.3) * 0.5 + 0.5);
updateMasterMeter();
}, 100);
}
// ---- Initialization ----
function init() {
buildChannelStrips();
cacheElements();
setupUIHandlers();
// Master fader initial position
updateMasterFader(state.masterVol);
// Draw initial state
updateAll();
// Connect to modguijs
setupModGUI();
}
// Wait for DOM
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', init);
} else {
init();
}
// Clean up on unload
window.addEventListener('beforeunload', function () {
if (pollInterval) clearInterval(pollInterval);
if (demoInterval) clearInterval(demoInterval);
// Clear all peak timers
for (var key in peakTimers) {
if (peakTimers[key]) clearTimeout(peakTimers[key]);
}
if (dragState) {
document.removeEventListener('pointermove', onFaderPointerMove);
document.removeEventListener('pointerup', onFaderPointerUp);
document.removeEventListener('touchmove', onFaderTouchMove);
document.removeEventListener('touchend', onFaderPointerUp);
}
});
})();
+71
View File
@@ -0,0 +1,71 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>OPLabs Band Bus</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="bus-bridge" id="busBridge">
<!-- Top section: 8 mini channel strips -->
<div class="bus-channels" id="busChannels">
<!-- Each strip rendered by JS -->
</div>
<!-- Divider -->
<div class="bus-divider"></div>
<!-- Master section -->
<div class="master-section">
<div class="master-label">Master</div>
<div class="master-controls">
<!-- Mute button -->
<button class="master-btn mute" id="masterBtnMute" title="Master Mute">M</button>
<!-- Master stereo level meters -->
<div class="master-meters">
<div class="master-meter-channel">
<span class="meter-label">L</span>
<div class="meter-track" id="masterMeterTrackL">
<div class="meter-fill" id="masterMeterFillL"></div>
<div class="meter-peak" id="masterMeterPeakL"></div>
<div class="meter-tick" style="bottom:80%"></div>
<div class="meter-tick" style="bottom:50%"></div>
<div class="meter-tick" style="bottom:20%"></div>
</div>
</div>
<div class="master-meter-channel">
<span class="meter-label">R</span>
<div class="meter-track" id="masterMeterTrackR">
<div class="meter-fill" id="masterMeterFillR"></div>
<div class="meter-peak" id="masterMeterPeakR"></div>
<div class="meter-tick" style="bottom:80%"></div>
<div class="meter-tick" style="bottom:50%"></div>
<div class="meter-tick" style="bottom:20%"></div>
</div>
</div>
</div>
<!-- Master volume fader -->
<div class="master-fader-section">
<div class="fader-label">Vol</div>
<div class="fader-track" id="masterFaderTrack">
<div class="fader-thumb" id="masterFaderThumb"></div>
<div class="fader-fill" id="masterFaderFill"></div>
</div>
<div class="fader-value" id="masterFaderReadout">0.0</div>
</div>
</div>
</div>
<!-- dB readout row -->
<div class="bus-readout-bar">
<span class="bus-readout-title">OUT:</span>
<span class="bus-readout" id="masterDbReadout">L: -∞ R: -∞</span>
</div>
</div>
<script src="app.js"></script>
</body>
</html>
+532
View File
@@ -0,0 +1,532 @@
/* ===== OPLabs Band Bus - ModGUI Styles ===== */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
:root {
--bg-primary: #1a1a2e;
--bg-secondary: #16213e;
--bg-surface: #0f3460;
--text-primary: #e0e0e0;
--text-secondary: #a0a0b0;
--accent-blue: #4fc3f7;
--accent-orange: #ff8c00;
--meter-green: #4caf50;
--meter-yellow: #ff9800;
--meter-red: #f44336;
--mute-red: #e53935;
--solo-yellow: #ffc107;
--border-color: #2a2a4a;
--channel-width: 80px;
--meter-width: 28px;
--master-meter-width: 36px;
}
html, body {
width: 100%;
height: 100%;
overflow: hidden;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;
background: var(--bg-primary);
color: var(--text-primary);
font-size: 11px;
user-select: none;
-webkit-user-select: none;
}
/* ===== Bus Bridge Container ===== */
.bus-bridge {
display: flex;
flex-direction: column;
height: 100%;
width: 100%;
padding: 4px;
gap: 3px;
background: var(--bg-primary);
}
/* ===== 8-Channel Strip Row ===== */
.bus-channels {
display: flex;
gap: 3px;
flex: 1;
min-height: 0;
}
/* ===== Individual Channel Strip (Mini) ===== */
.ch-strip {
flex: 1;
min-width: 0;
display: flex;
flex-direction: column;
background: var(--bg-secondary);
border-radius: 4px;
border: 1px solid var(--border-color);
border-top: 2px solid var(--accent-orange);
padding: 3px 2px;
gap: 2px;
align-items: center;
position: relative;
}
.ch-strip.muted {
border-top-color: var(--mute-red);
opacity: 0.65;
}
.ch-strip-label {
font-size: 9px;
font-weight: 700;
color: var(--text-secondary);
text-transform: uppercase;
letter-spacing: 0.3px;
text-align: center;
line-height: 1.2;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
width: 100%;
}
/* Mini Mute Button */
.ch-strip-mute {
width: 24px;
height: 18px;
border: 1px solid var(--border-color);
border-radius: 3px;
font-size: 9px;
font-weight: 800;
cursor: pointer;
transition: all 0.15s ease;
background: var(--bg-primary);
color: var(--text-secondary);
line-height: 1;
padding: 0;
flex-shrink: 0;
}
.ch-strip-mute:hover {
filter: brightness(1.3);
}
.ch-strip-mute.active {
background: var(--mute-red);
color: #fff;
border-color: var(--mute-red);
box-shadow: 0 0 6px rgba(229, 57, 53, 0.35);
}
/* ===== Mini Level Meter ===== */
.ch-strip-meter {
display: flex;
gap: 1px;
height: 100%;
width: 100%;
min-height: 20px;
flex: 1;
}
.ch-strip-meter .meter-channel {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
gap: 0;
min-width: 0;
}
.ch-strip-meter .meter-label {
font-size: 7px;
font-weight: 700;
color: var(--text-secondary);
line-height: 1;
}
.ch-strip-meter .meter-track {
flex: 1;
width: 100%;
min-width: 8px;
background: var(--bg-primary);
border-radius: 2px;
position: relative;
overflow: hidden;
border: 1px solid var(--border-color);
}
.ch-strip-meter .meter-fill {
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 0%;
background: var(--meter-green);
transition: height 0.05s linear, background 0.1s ease;
border-radius: 0 0 1px 1px;
}
.ch-strip-meter .meter-fill.warm {
background: var(--meter-yellow);
}
.ch-strip-meter .meter-fill.hot {
background: var(--meter-red);
}
.ch-strip-meter .meter-peak {
position: absolute;
left: 1px;
right: 1px;
height: 2px;
background: rgba(255, 255, 255, 0.85);
border-radius: 1px;
transition: bottom 0.1s ease;
z-index: 2;
}
/* ===== Mini Vertical Fader ===== */
.ch-strip-fader {
width: 100%;
height: 50px;
display: flex;
flex-direction: column;
align-items: center;
gap: 1px;
flex-shrink: 0;
}
.ch-strip-fader .fader-label {
font-size: 7px;
font-weight: 600;
color: var(--text-secondary);
text-transform: uppercase;
letter-spacing: 0.5px;
line-height: 1;
}
.ch-strip-fader .fader-track {
width: 12px;
flex: 1;
background: var(--bg-primary);
border-radius: 3px;
border: 1px solid var(--border-color);
position: relative;
cursor: pointer;
touch-action: none;
min-height: 20px;
}
.ch-strip-fader .fader-fill {
position: absolute;
bottom: 0;
left: 1px;
right: 1px;
height: 50%;
background: var(--accent-blue);
border-radius: 0 0 2px 2px;
opacity: 0.5;
pointer-events: none;
}
.ch-strip-fader .fader-thumb {
position: absolute;
left: -3px;
right: -3px;
height: 6px;
background: var(--accent-blue);
border-radius: 2px;
border: 1px solid rgba(255, 255, 255, 0.3);
cursor: pointer;
touch-action: none;
z-index: 2;
transition: background 0.1s;
}
.ch-strip-fader .fader-thumb:hover,
.ch-strip-fader .fader-thumb:active {
background: #81d4fa;
}
.ch-strip-fader .fader-value {
font-size: 7px;
font-weight: 600;
font-family: 'Courier New', monospace;
color: var(--text-secondary);
line-height: 1;
}
/* ===== Divider ===== */
.bus-divider {
height: 1px;
background: var(--border-color);
margin: 1px 0;
flex-shrink: 0;
}
/* ===== Master Section ===== */
.master-section {
display: flex;
flex-direction: column;
gap: 3px;
padding: 3px 4px;
background: var(--bg-secondary);
border-radius: 4px;
border: 1px solid var(--border-color);
border-top: 2px solid var(--accent-orange);
flex-shrink: 0;
}
.master-section.muted {
border-top-color: var(--mute-red);
opacity: 0.7;
}
.master-label {
font-size: 10px;
font-weight: 800;
color: var(--text-primary);
text-transform: uppercase;
letter-spacing: 1px;
text-align: center;
}
.master-controls {
display: flex;
gap: 6px;
align-items: stretch;
}
/* Master Mute Button */
.master-btn {
width: 32px;
min-height: 40px;
border: 1px solid var(--border-color);
border-radius: 4px;
font-size: 13px;
font-weight: 800;
cursor: pointer;
transition: all 0.15s ease;
background: var(--bg-primary);
color: var(--text-secondary);
flex-shrink: 0;
align-self: center;
}
.master-btn:hover {
filter: brightness(1.3);
}
.master-btn.mute.active {
background: var(--mute-red);
color: #fff;
border-color: var(--mute-red);
box-shadow: 0 0 8px rgba(229, 57, 53, 0.4);
}
/* Master Stereo Meters */
.master-meters {
display: flex;
gap: 3px;
flex: 1;
height: 60px;
min-width: 0;
}
.master-meter-channel {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
gap: 1px;
min-width: 0;
}
.master-meter-channel .meter-label {
font-size: 9px;
font-weight: 700;
color: var(--text-secondary);
}
.master-meter-channel .meter-track {
flex: 1;
width: 100%;
max-width: var(--master-meter-width);
background: var(--bg-primary);
border-radius: 3px;
position: relative;
overflow: hidden;
border: 1px solid var(--border-color);
}
.master-meter-channel .meter-fill {
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 0%;
background: var(--meter-green);
transition: height 0.05s linear, background 0.1s ease;
border-radius: 0 0 2px 2px;
}
.master-meter-channel .meter-fill.warm {
background: var(--meter-yellow);
}
.master-meter-channel .meter-fill.hot {
background: var(--meter-red);
}
.master-meter-channel .meter-peak {
position: absolute;
left: 1px;
right: 1px;
height: 2px;
background: rgba(255, 255, 255, 0.9);
border-radius: 1px;
transition: bottom 0.1s ease;
z-index: 2;
}
.master-meter-channel .meter-tick {
position: absolute;
left: 0;
right: 0;
height: 1px;
background: rgba(255, 255, 255, 0.08);
z-index: 1;
}
/* Master Fader */
.master-fader-section {
display: flex;
flex-direction: column;
align-items: center;
gap: 2px;
width: 40px;
flex-shrink: 0;
}
.master-fader-section .fader-label {
font-size: 8px;
font-weight: 600;
color: var(--text-secondary);
text-transform: uppercase;
letter-spacing: 0.5px;
}
.master-fader-section .fader-track {
width: 16px;
flex: 1;
min-height: 40px;
background: var(--bg-primary);
border-radius: 4px;
border: 1px solid var(--border-color);
position: relative;
cursor: pointer;
touch-action: none;
}
.master-fader-section .fader-fill {
position: absolute;
bottom: 0;
left: 1px;
right: 1px;
height: 50%;
background: var(--accent-orange);
border-radius: 0 0 3px 3px;
opacity: 0.4;
pointer-events: none;
}
.master-fader-section .fader-thumb {
position: absolute;
left: -4px;
right: -4px;
height: 8px;
background: var(--accent-orange);
border-radius: 2px;
border: 1px solid rgba(255, 255, 255, 0.3);
cursor: pointer;
touch-action: none;
z-index: 2;
transition: background 0.1s;
}
.master-fader-section .fader-thumb:hover,
.master-fader-section .fader-thumb:active {
background: #ffab40;
}
.master-fader-section .fader-value {
font-size: 9px;
font-weight: 700;
font-family: 'Courier New', monospace;
color: var(--text-primary);
}
/* ===== Bus Readout Bar ===== */
.bus-readout-bar {
display: flex;
align-items: center;
justify-content: center;
gap: 6px;
padding: 2px 4px;
flex-shrink: 0;
}
.bus-readout-title {
font-size: 10px;
font-weight: 700;
color: var(--text-secondary);
text-transform: uppercase;
letter-spacing: 0.5px;
}
.bus-readout {
font-size: 10px;
font-weight: 600;
font-family: 'Courier New', monospace;
color: var(--accent-blue);
}
.bus-readout span.hot {
color: var(--meter-red);
font-weight: 700;
}
/* ===== Responsive ===== */
@media (max-height: 280px) {
.ch-strip-fader { height: 30px; }
.master-meters { height: 36px; }
.master-fader-section .fader-track { min-height: 24px; }
.master-label { font-size: 8px; }
.ch-strip-label { font-size: 7px; }
}
@media (max-height: 350px) {
.ch-strip-fader { height: 36px; }
.master-meters { height: 40px; }
}
@media (min-height: 450px) {
.ch-strip-fader { height: 60px; }
.master-meters { height: 70px; }
:root { --channel-width: 90px; }
:root { --master-meter-width: 44px; }
}
@media (max-width: 600px) {
:root { --channel-width: 60px; }
.ch-strip-label { font-size: 7px; }
.ch-strip-mute { width: 20px; height: 16px; font-size: 8px; }
.ch-strip-fader .fader-track { width: 10px; }
}
@media (max-width: 480px) {
:root { --channel-width: 50px; }
.ch-strip { padding: 2px 1px; }
.bus-channels { gap: 2px; }
}
Binary file not shown.
@@ -0,0 +1,183 @@
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix units: <http://lv2plug.in/ns/extensions/units#> .
@prefix mod: <http://moddevices.com/ns/mod#> .
@prefix state: <http://lv2plug.in/ns/ext/state#> .
@prefix patch: <http://lv2plug.in/ns/ext/patch#> .
@prefix atom: <http://lv2plug.in/ns/ext/atom#> .
@prefix pipedal_ui: <http://github.com/rerdavies/pipedal/ui#> .
@prefix modgui: <http://moddevices.com/ns/modgui#> .
@prefix epp: <http://lv2plug.in/ns/ext/port-props#> .
@prefix pg: <http://lv2plug.in/ns/ext/port-groups#> .
@prefix param: <http://lv2plug.in/ns/ext/parameters#> .
@prefix urid: <http://lv2plug.in/ns/ext/urid#> .
<http://ourpad.casa/plugins/oplabs-band-channel>
a lv2:Plugin , lv2:UtilityPlugin ;
doap:name "OPLabs Band Channel" ;
doap:license <http://opensource.org/licenses/MIT> ;
lv2:project <http://ourpad.casa/plugins/oplabs-band-channel> ;
mod:brand "OPLabs" ;
mod:label "Band Channel" ;
mod:model "Band Channel" ;
# ModGUI for PiPedal
modgui:gui [
modgui:resourceDirectory <modgui/> ;
modgui:iconTemplate <modgui/index.html> ;
modgui:settingsTemplate <modgui/index.html> ;
] ;
# State extension for save/restore
lv2:extensionData state:interface ;
# Required features for state and path mapping
lv2:requiredFeature urid:map ;
lv2:optionalFeature state:mapPath ,
state:freePath ;
# Port definitions
lv2:port
## --- CONTROL INPUT PORTS ---
# Volume: -60 to +6 dB, default 0
[
a lv2:InputPort , lv2:ControlPort ;
lv2:index 0 ;
lv2:symbol "volume" ;
lv2:name "Volume" ;
lv2:default 0.0 ;
lv2:minimum -60.0 ;
lv2:maximum 6.0 ;
units:unit units:db ;
rdfs:comment "Channel volume in dB"
] ,
# Pan: -1 to +1, default 0 (center)
[
a lv2:InputPort , lv2:ControlPort ;
lv2:index 1 ;
lv2:symbol "pan" ;
lv2:name "Pan" ;
lv2:default 0.0 ;
lv2:minimum -1.0 ;
lv2:maximum 1.0 ;
rdfs:comment "Stereo pan position (-1 full left, +1 full right)"
] ,
# Mute: 0/1 toggled
[
a lv2:InputPort , lv2:ControlPort ;
lv2:index 2 ;
lv2:symbol "mute" ;
lv2:name "Mute" ;
lv2:default 0.0 ;
lv2:minimum 0.0 ;
lv2:maximum 1.0 ;
lv2:portProperty lv2:toggled ;
lv2:scalePoint [ rdfs:label "Normal" ; rdf:value 0.0 ] ,
[ rdfs:label "Muted" ; rdf:value 1.0 ] ;
rdfs:comment "Mute channel audio"
] ,
# Solo: 0/1 toggled
[
a lv2:InputPort , lv2:ControlPort ;
lv2:index 3 ;
lv2:symbol "solo" ;
lv2:name "Solo" ;
lv2:default 0.0 ;
lv2:minimum 0.0 ;
lv2:maximum 1.0 ;
lv2:portProperty lv2:toggled ;
lv2:scalePoint [ rdfs:label "Normal" ; rdf:value 0.0 ] ,
[ rdfs:label "Solo" ; rdf:value 1.0 ] ;
rdfs:comment "Solo this channel (mutes all others)"
] ,
# Instrument: enumeration
[
a lv2:InputPort , lv2:ControlPort ;
lv2:index 4 ;
lv2:symbol "instrument" ;
lv2:name "Instrument" ;
lv2:default 0.0 ;
lv2:minimum 0.0 ;
lv2:maximum 4.0 ;
lv2:portProperty lv2:enumeration ;
lv2:scalePoint [ rdfs:label "Guitar" ; rdf:value 0.0 ] ,
[ rdfs:label "Bass" ; rdf:value 1.0 ] ,
[ rdfs:label "Keys" ; rdf:value 2.0 ] ,
[ rdfs:label "Vocals" ; rdf:value 3.0 ] ,
[ rdfs:label "Backing"; rdf:value 4.0 ] ;
rdfs:comment "Instrument type for channel strip"
] ,
## --- CONTROL OUTPUT PORTS (Meters) ---
# Level L: peak meter, -60 to 0 dB
[
a lv2:OutputPort , lv2:ControlPort ;
lv2:index 5 ;
lv2:symbol "levelL" ;
lv2:name "Level L" ;
lv2:default 0.0 ;
lv2:minimum -60.0 ;
lv2:maximum 0.0 ;
units:unit units:db ;
lv2:portProperty epp:notOnGUI ;
rdfs:comment "Left channel peak level in dB"
] ,
# Level R: peak meter, -60 to 0 dB
[
a lv2:OutputPort , lv2:ControlPort ;
lv2:index 6 ;
lv2:symbol "levelR" ;
lv2:name "Level R" ;
lv2:default 0.0 ;
lv2:minimum -60.0 ;
lv2:maximum 0.0 ;
units:unit units:db ;
lv2:portProperty epp:notOnGUI ;
rdfs:comment "Right channel peak level in dB"
] ,
## --- AUDIO PORTS ---
# Left audio input
[
a lv2:AudioPort , lv2:InputPort ;
lv2:index 7 ;
lv2:symbol "inL" ;
lv2:name "In L"
] ,
# Right audio input
[
a lv2:AudioPort , lv2:InputPort ;
lv2:index 8 ;
lv2:symbol "inR" ;
lv2:name "In R"
] ,
# Left audio output
[
a lv2:AudioPort , lv2:OutputPort ;
lv2:index 9 ;
lv2:symbol "outL" ;
lv2:name "Out L"
] ,
# Right audio output
[
a lv2:AudioPort , lv2:OutputPort ;
lv2:index 10 ;
lv2:symbol "outR" ;
lv2:name "Out R"
]
.
+7
View File
@@ -0,0 +1,7 @@
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
<http://ourpad.casa/plugins/oplabs-band-channel>
a lv2:Plugin ;
lv2:binary <OPLabsBandChannel.so> ;
rdfs:seeAlso <OPLabsBandChannel.ttl> .
+453
View File
@@ -0,0 +1,453 @@
/* ===== OPLabs Band Channel - ModGUI Application ===== */
(function () {
'use strict';
// ---- Constants ----
var INSTRUMENTS = ['Guitar', 'Bass', 'Keys', 'Vocals', 'Backing'];
var INSTRUMENT_COLORS = ['#ff8c00', '#2196f3', '#9c27b0', '#e91e63', '#009688'];
var DB_MIN = -60;
var DB_MAX_VOL = 6; // volume max
var DB_MAX_METER = 0; // meter max
// ---- State ----
var state = {
volume: 0,
pan: 0,
mute: 0,
solo: 0,
instrument: 0,
levelL: -60,
levelR: -60
};
// Peak hold state for meters
var peakL = -60;
var peakR = -60;
var peakTimerL = null;
var peakTimerR = null;
var PEAK_HOLD_MS = 1500;
// Drag state for knobs
var dragState = null; // { knob, startY, startVal, min, max, onChange }
// ---- DOM References ----
var els = {};
function cacheElements() {
els.btnMute = document.getElementById('btnMute');
els.btnSolo = document.getElementById('btnSolo');
els.instrumentBadge = document.getElementById('instrumentBadge');
els.instrumentSelect = document.getElementById('instrumentSelect');
els.meterFillL = document.getElementById('meterFillL');
els.meterFillR = document.getElementById('meterFillR');
els.meterPeakL = document.getElementById('meterPeakL');
els.meterPeakR = document.getElementById('meterPeakR');
els.meterDbReadout = document.getElementById('meterDbReadout');
els.volumeReadout = document.getElementById('volumeReadout');
els.panReadout = document.getElementById('panReadout');
els.knobVolumeGrip = document.getElementById('knobVolumeGrip');
els.knobPanGrip = document.getElementById('knobPanGrip');
els.knobVolume = document.getElementById('knobVolume');
els.knobPan = document.getElementById('knobPan');
els.channelStrip = document.getElementById('channelStrip');
}
// ---- Utility ----
function clamp(val, min, max) {
return Math.min(max, Math.max(min, val));
}
function dbToPercent(db, dbMax) {
dbMax = dbMax || DB_MAX_METER;
var clamped = clamp(db, DB_MIN, dbMax);
var normalized = (clamped - DB_MIN) / (dbMax - DB_MIN); // 0..1
return Math.sqrt(normalized) * 100;
}
function getMeterColor(pct) {
if (pct < 60) return 'var(--meter-green)';
if (pct < 85) return 'var(--meter-yellow)';
return 'var(--meter-red)';
}
// ---- Knob angle mapping ----
// Maps a value in [min, max] to rotation angle [-135, 135] degrees
function valueToAngle(val, min, max) {
var t = (val - min) / (max - min);
return -135 + t * 270;
}
function setKnobAngle(gripEl, angleDeg) {
gripEl.style.transform = 'rotate(' + angleDeg + 'deg)';
}
// ---- Rotary knob drag handler ----
function initKnob(knobEl, gripEl, symbol, min, max, step, displayFn) {
function onPointerDown(e) {
e.preventDefault();
if (dragState) return;
var startVal = state[symbol];
if (typeof startVal !== 'number') startVal = min;
dragState = {
symbol: symbol,
startY: e.clientY || e.touches[0].clientY,
startVal: startVal,
min: min,
max: max,
step: step,
gripEl: gripEl,
knobEl: knobEl,
displayFn: displayFn
};
document.addEventListener('pointermove', onPointerMove);
document.addEventListener('pointerup', onPointerUp);
document.addEventListener('touchmove', onTouchMove, { passive: false });
document.addEventListener('touchend', onPointerUp);
}
function onPointerMove(e) {
if (!dragState) return;
e.preventDefault();
var clientY = e.clientY;
dragKnob(clientY);
}
function onTouchMove(e) {
if (!dragState) return;
e.preventDefault();
var touch = e.touches[0];
dragKnob(touch.clientY);
}
function dragKnob(clientY) {
var d = dragState;
var deltaY = d.startY - clientY; // positive = drag up = increase
var range = d.max - d.min;
// Sensitivity: 300px for full range
var deltaVal = (deltaY / 300) * range;
var newVal = clamp(d.startVal + deltaVal, d.min, d.max);
// Apply step
if (d.step > 0) {
newVal = Math.round(newVal / d.step) * d.step;
newVal = clamp(newVal, d.min, d.max);
}
// Update state and host
state[d.symbol] = newVal;
sendValue(d.symbol, newVal);
updateKnobVisual(d);
if (d.displayFn) d.displayFn(newVal);
}
function onPointerUp() {
if (!dragState) return;
dragState = null;
document.removeEventListener('pointermove', onPointerMove);
document.removeEventListener('pointerup', onPointerUp);
document.removeEventListener('touchmove', onTouchMove);
document.removeEventListener('touchend', onPointerUp);
}
// Mouse
knobEl.addEventListener('pointerdown', onPointerDown);
// Touch
knobEl.addEventListener('touchstart', function (e) {
// For touch, prevent default to avoid scrolling
e.preventDefault();
onPointerDown(e);
}, { passive: false });
}
function updateKnobVisual(d) {
var val = state[d.symbol];
var angle = valueToAngle(val, d.min, d.max);
setKnobAngle(d.gripEl, angle);
}
// ---- Send value to host ----
function sendValue(symbol, value) {
if (window.modguijs && typeof window.modguijs.setValue === 'function') {
window.modguijs.setValue(symbol, value);
}
}
// ---- Update UI from state ----
function updateVolumeDisplay(val) {
var display = val <= DB_MIN ? '-∞' : (val >= 0 ? '+' : '') + val.toFixed(1) + ' dB';
els.volumeReadout.textContent = display;
var angle = valueToAngle(val, DB_MIN, DB_MAX_VOL);
setKnobAngle(els.knobVolumeGrip, angle);
}
function updatePanDisplay(val) {
var display;
if (val === 0) display = 'C';
else if (val < 0) display = 'L' + Math.abs(Math.round(val * 100));
else display = 'R' + Math.round(val * 100);
els.panReadout.textContent = display;
var angle = valueToAngle(val, -1, 1);
setKnobAngle(els.knobPanGrip, angle);
}
function updateMuteDisplay(val) {
var active = val >= 0.5;
els.btnMute.classList.toggle('active', active);
}
function updateSoloDisplay(val) {
var active = val >= 0.5;
els.btnSolo.classList.toggle('active', active);
}
function updateInstrumentDisplay(val) {
var idx = Math.round(val) || 0;
idx = clamp(idx, 0, 4);
els.instrumentSelect.value = String(idx);
els.instrumentBadge.textContent = INSTRUMENTS[idx];
els.instrumentBadge.style.color = INSTRUMENT_COLORS[idx];
els.instrumentBadge.style.borderColor = INSTRUMENT_COLORS[idx];
els.instrumentBadge.style.background = INSTRUMENT_COLORS[idx] + '22';
// Update border accent on channel strip
els.channelStrip.style.borderTopColor = INSTRUMENT_COLORS[idx];
}
function updateMeterDisplay(levelL, levelR) {
// Update fill heights
var pctL = dbToPercent(levelL, DB_MAX_METER);
var pctR = dbToPercent(levelR, DB_MAX_METER);
els.meterFillL.style.height = Math.min(100, pctL) + '%';
els.meterFillR.style.height = Math.min(100, pctR) + '%';
// Update fill colors
els.meterFillL.style.background = getMeterColor(pctL);
els.meterFillR.style.background = getMeterColor(pctR);
els.meterFillL.className = 'meter-fill' + (pctL >= 85 ? ' hot' : pctL >= 60 ? ' warm' : '');
els.meterFillR.className = 'meter-fill' + (pctR >= 85 ? ' hot' : pctR >= 60 ? ' warm' : '');
// Peak hold logic
updatePeak('L', levelL, pctL);
updatePeak('R', levelR, pctR);
// dB readout
var dbL = levelL <= DB_MIN ? '-∞' : levelL.toFixed(1);
var dbR = levelR <= DB_MIN ? '-∞' : levelR.toFixed(1);
els.meterDbReadout.innerHTML =
'<span class="' + (levelL > -10 ? 'hot' : '') + '">' + dbL + '</span>' +
'<span class="' + (levelR > -10 ? 'hot' : '') + '">' + dbR + '</span>';
}
function updatePeak(ch, level, pct) {
var peakEl = ch === 'L' ? els.meterPeakL : els.meterPeakR;
if (ch === 'L') {
if (level > peakL) {
peakL = level;
if (peakTimerL) { clearTimeout(peakTimerL); peakTimerL = null; }
peakTimerL = setTimeout(function () {
peakL = Math.max(state.levelL, DB_MIN);
peakEl.style.bottom = Math.min(100, dbToPercent(peakL, DB_MAX_METER)) + '%';
}, PEAK_HOLD_MS);
}
} else {
if (level > peakR) {
peakR = level;
if (peakTimerR) { clearTimeout(peakTimerR); peakTimerR = null; }
peakTimerR = setTimeout(function () {
peakR = Math.max(state.levelR, DB_MIN);
peakEl.style.bottom = Math.min(100, dbToPercent(peakR, DB_MAX_METER)) + '%';
}, PEAK_HOLD_MS);
}
}
peakEl.style.bottom = Math.min(100, pct) + '%';
}
// ---- Full UI update ----
function updateAll() {
updateVolumeDisplay(state.volume);
updatePanDisplay(state.pan);
updateMuteDisplay(state.mute);
updateSoloDisplay(state.solo);
updateInstrumentDisplay(state.instrument);
updateMeterDisplay(state.levelL, state.levelR);
}
// ---- UI Event Handlers ----
function setupUIHandlers() {
// Mute button
els.btnMute.addEventListener('click', function () {
var newVal = state.mute >= 0.5 ? 0 : 1;
state.mute = newVal;
sendValue('mute', newVal);
updateMuteDisplay(newVal);
});
// Solo button
els.btnSolo.addEventListener('click', function () {
var newVal = state.solo >= 0.5 ? 0 : 1;
state.solo = newVal;
sendValue('solo', newVal);
updateSoloDisplay(newVal);
});
// Instrument selector
els.instrumentSelect.addEventListener('change', function () {
var newVal = parseInt(this.value, 10);
state.instrument = newVal;
sendValue('instrument', newVal);
updateInstrumentDisplay(newVal);
});
}
// ---- Knobs setup ----
function setupKnobs() {
// Volume knob: -60 to +6, step 0.5
initKnob(
els.knobVolume,
els.knobVolumeGrip,
'volume',
DB_MIN,
DB_MAX_VOL,
0.5,
function (val) { updateVolumeDisplay(val); }
);
// Pan knob: -1 to 1, step 0.01
initKnob(
els.knobPan,
els.knobPanGrip,
'pan',
-1,
1,
0.01,
function (val) { updatePanDisplay(val); }
);
// Initial knob angles
updateVolumeDisplay(state.volume);
updatePanDisplay(state.pan);
}
// ---- ModGUI API Integration ----
function setupModGUI() {
// Try to read initial values
if (window.modguijs) {
// Get initial values from host
var params = ['volume', 'pan', 'mute', 'solo', 'instrument', 'levelL', 'levelR'];
params.forEach(function (symbol) {
if (typeof window.modguijs.getValue === 'function') {
try {
var val = window.modguijs.getValue(symbol);
if (val !== undefined && val !== null) {
state[symbol] = val;
}
} catch (e) {
// Ignore
}
}
});
// Subscribe to changes
if (typeof window.modguijs.onChange === 'function') {
params.forEach(function (symbol) {
window.modguijs.onChange(symbol, function (value) {
state[symbol] = value;
switch (symbol) {
case 'volume': updateVolumeDisplay(value); break;
case 'pan': updatePanDisplay(value); break;
case 'mute': updateMuteDisplay(value); break;
case 'solo': updateSoloDisplay(value); break;
case 'instrument': updateInstrumentDisplay(value); break;
case 'levelL': updateMeterDisplay(state.levelL, state.levelR); break;
case 'levelR': updateMeterDisplay(state.levelL, state.levelR); break;
}
});
});
}
// If no onChange, poll manually
if (typeof window.modguijs.onChange !== 'function') {
startPolling();
}
} else {
// Fallback: poll if modguijs not ready yet, wait then retry
setTimeout(function () {
if (window.modguijs) {
setupModGUI();
} else {
// Still no API — run in demo mode
startDemoMode();
}
}, 500);
}
}
// ---- Polling fallback (if onChange not supported) ----
var pollInterval = null;
function startPolling() {
if (pollInterval) return;
pollInterval = setInterval(function () {
if (!window.modguijs || typeof window.modguijs.getValue !== 'function') return;
var params = ['volume', 'pan', 'mute', 'solo', 'instrument', 'levelL', 'levelR'];
params.forEach(function (symbol) {
try {
var val = window.modguijs.getValue(symbol);
if (val !== undefined && val !== null && val !== state[symbol]) {
state[symbol] = val;
}
} catch (e) {}
});
// Batch update meter
updateMeterDisplay(state.levelL, state.levelR);
}, 50); // 20fps for meters
}
// ---- Demo mode (when not in PiPedal) ----
var demoInterval = null;
function startDemoMode() {
console.log('OPLabs Band Channel: No modguijs API found, running demo mode');
// Animate levels for visual testing
var t = 0;
demoInterval = setInterval(function () {
t += 0.05;
var l = -40 + 30 * (Math.sin(t) * 0.5 + 0.5);
var r = -40 + 30 * (Math.cos(t * 0.7) * 0.5 + 0.5);
state.levelL = l;
state.levelR = r;
updateMeterDisplay(l, r);
}, 100);
}
// ---- Initialization ----
function init() {
cacheElements();
setupUIHandlers();
setupKnobs();
updateAll();
setupModGUI();
}
// Wait for DOM
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', init);
} else {
init();
}
// Clean up on unload
window.addEventListener('beforeunload', function () {
if (pollInterval) clearInterval(pollInterval);
if (demoInterval) clearInterval(demoInterval);
if (peakTimerL) clearTimeout(peakTimerL);
if (peakTimerR) clearTimeout(peakTimerR);
});
})();
@@ -0,0 +1,93 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>OPLabs Band Channel</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="channel-strip" id="channelStrip">
<!-- Header: label + instrument badge -->
<div class="ch-header">
<span class="ch-label">Band Channel</span>
<span class="ch-instrument-badge" id="instrumentBadge">Guitar</span>
</div>
<!-- Mute & Solo buttons -->
<div class="ch-mute-solo">
<button class="ch-btn mute" id="btnMute" title="Mute">M</button>
<button class="ch-btn solo" id="btnSolo" title="Solo">S</button>
</div>
<!-- Level Meter -->
<div class="ch-meter-section">
<div class="meter-stereo">
<div class="meter-channel">
<span class="meter-label">L</span>
<div class="meter-track" id="meterTrackL">
<div class="meter-fill" id="meterFillL"></div>
<div class="meter-peak" id="meterPeakL"></div>
<div class="meter-tick" style="bottom:80%"></div>
<div class="meter-tick" style="bottom:50%"></div>
<div class="meter-tick" style="bottom:20%"></div>
</div>
</div>
<div class="meter-channel">
<span class="meter-label">R</span>
<div class="meter-track" id="meterTrackR">
<div class="meter-fill" id="meterFillR"></div>
<div class="meter-peak" id="meterPeakR"></div>
<div class="meter-tick" style="bottom:80%"></div>
<div class="meter-tick" style="bottom:50%"></div>
<div class="meter-tick" style="bottom:20%"></div>
</div>
</div>
</div>
<div class="meter-db-readout" id="meterDbReadout">
<span>-∞</span>
<span>-∞</span>
</div>
</div>
<!-- Rotary Knobs Row -->
<div class="ch-knobs-row">
<!-- Volume knob -->
<div class="knob-container">
<div class="knob-label">Volume</div>
<div class="knob-rotary" id="knobVolume">
<div class="knob-arc" id="knobVolumeArc">
<div class="knob-grip" id="knobVolumeGrip"></div>
</div>
</div>
<div class="knob-value" id="volumeReadout">0.0 dB</div>
</div>
<!-- Pan knob -->
<div class="knob-container">
<div class="knob-label">Pan</div>
<div class="knob-rotary" id="knobPan">
<div class="knob-arc" id="knobPanArc">
<div class="knob-grip" id="knobPanGrip"></div>
</div>
</div>
<div class="knob-value" id="panReadout">C</div>
</div>
</div>
<!-- Instrument selector -->
<div class="ch-instrument-section">
<label class="ch-instrument-label">Instrument</label>
<select class="ch-instrument-select" id="instrumentSelect">
<option value="0">Guitar</option>
<option value="1">Bass</option>
<option value="2">Keys</option>
<option value="3">Vocals</option>
<option value="4">Backing</option>
</select>
</div>
</div>
<script src="app.js"></script>
</body>
</html>
+334
View File
@@ -0,0 +1,334 @@
/* ===== OPLabs Band Channel - ModGUI Styles ===== */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
:root {
--bg-primary: #1a1a2e;
--bg-secondary: #16213e;
--bg-surface: #0f3460;
--bg-knob: #2a2a4a;
--text-primary: #e0e0e0;
--text-secondary: #a0a0b0;
--accent-blue: #4fc3f7;
--accent-orange: #ff8c00;
--meter-green: #4caf50;
--meter-yellow: #ff9800;
--meter-red: #f44336;
--mute-red: #e53935;
--solo-yellow: #ffc107;
--border-color: #2a2a4a;
--knob-size: 56px;
}
html, body {
width: 100%;
height: 100%;
overflow: hidden;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;
background: var(--bg-primary);
color: var(--text-primary);
font-size: 11px;
user-select: none;
-webkit-user-select: none;
}
.channel-strip {
display: flex;
flex-direction: column;
gap: 4px;
padding: 8px;
height: 100%;
width: 100%;
background: var(--bg-secondary);
border-radius: 6px;
border: 1px solid var(--border-color);
border-top: 3px solid var(--accent-orange);
}
/* ===== Header ===== */
.ch-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 2px;
}
.ch-label {
font-size: 12px;
font-weight: 700;
color: var(--text-primary);
letter-spacing: 0.5px;
}
.ch-instrument-badge {
font-size: 10px;
font-weight: 600;
padding: 2px 8px;
border-radius: 10px;
border: 1px solid var(--accent-orange);
color: var(--accent-orange);
background: rgba(255, 140, 0, 0.12);
}
/* ===== Mute & Solo Buttons ===== */
.ch-mute-solo {
display: flex;
gap: 6px;
justify-content: center;
}
.ch-btn {
flex: 1;
height: 28px;
border: 1px solid var(--border-color);
border-radius: 4px;
font-size: 13px;
font-weight: 800;
cursor: pointer;
transition: all 0.15s ease;
background: var(--bg-primary);
color: var(--text-secondary);
letter-spacing: 0.5px;
}
.ch-btn:hover {
filter: brightness(1.3);
}
.ch-btn.mute.active {
background: var(--mute-red);
color: #fff;
border-color: var(--mute-red);
box-shadow: 0 0 8px rgba(229, 57, 53, 0.4);
}
.ch-btn.solo.active {
background: var(--solo-yellow);
color: #1a1a2e;
border-color: var(--solo-yellow);
box-shadow: 0 0 8px rgba(255, 193, 7, 0.4);
}
/* ===== Level Meter ===== */
.ch-meter-section {
display: flex;
flex-direction: column;
gap: 2px;
}
.meter-stereo {
display: flex;
gap: 2px;
height: 70px;
}
.meter-channel {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
gap: 2px;
}
.meter-label {
font-size: 9px;
font-weight: 700;
color: var(--text-secondary);
}
.meter-track {
flex: 1;
width: 100%;
background: var(--bg-primary);
border-radius: 2px;
position: relative;
overflow: hidden;
border: 1px solid var(--border-color);
}
.meter-fill {
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 0%;
background: var(--meter-green);
transition: height 0.05s linear, background 0.1s ease;
border-radius: 0 0 1px 1px;
}
.meter-fill.warm {
background: var(--meter-yellow);
}
.meter-fill.hot {
background: var(--meter-red);
}
.meter-peak {
position: absolute;
left: 1px;
right: 1px;
height: 2px;
background: rgba(255, 255, 255, 0.9);
border-radius: 1px;
transition: bottom 0.1s ease;
z-index: 2;
}
.meter-tick {
position: absolute;
left: 0;
right: 0;
height: 1px;
background: rgba(255, 255, 255, 0.1);
z-index: 1;
}
.meter-db-readout {
display: flex;
justify-content: space-between;
padding: 0 4px;
font-size: 9px;
font-family: 'Courier New', monospace;
color: var(--text-secondary);
}
.meter-db-readout span.hot {
color: var(--meter-red);
font-weight: 700;
}
/* ===== Knobs Row ===== */
.ch-knobs-row {
display: flex;
gap: 4px;
justify-content: space-around;
}
.knob-container {
display: flex;
flex-direction: column;
align-items: center;
gap: 2px;
}
.knob-label {
font-size: 9px;
font-weight: 600;
color: var(--text-secondary);
text-transform: uppercase;
letter-spacing: 1px;
}
.knob-rotary {
width: var(--knob-size);
height: var(--knob-size);
position: relative;
cursor: pointer;
touch-action: none;
}
.knob-arc {
width: 100%;
height: 100%;
border-radius: 50%;
background: var(--bg-knob);
border: 2px solid var(--border-color);
position: relative;
transition: border-color 0.15s;
}
.knob-arc:hover {
border-color: var(--accent-blue);
}
.knob-grip {
position: absolute;
width: 4px;
height: 18px;
background: var(--accent-blue);
border-radius: 2px;
left: 50%;
top: 6px;
transform-origin: 2px 22px;
margin-left: -2px;
transition: background 0.15s;
}
.knob-arc:hover .knob-grip {
background: #81d4fa;
}
.knob-value {
font-size: 10px;
font-weight: 600;
font-family: 'Courier New', monospace;
color: var(--text-primary);
text-align: center;
min-width: 50px;
}
/* ===== Instrument Selector ===== */
.ch-instrument-section {
display: flex;
flex-direction: column;
gap: 2px;
}
.ch-instrument-label {
font-size: 9px;
font-weight: 600;
color: var(--text-secondary);
text-transform: uppercase;
letter-spacing: 1px;
}
.ch-instrument-select {
width: 100%;
height: 28px;
background: var(--bg-primary);
color: var(--text-primary);
border: 1px solid var(--accent-orange);
border-radius: 4px;
padding: 0 6px;
font-size: 11px;
font-weight: 600;
cursor: pointer;
outline: none;
appearance: none;
-webkit-appearance: none;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23ff8c00'/%3E%3C/svg%3E");
background-repeat: no-repeat;
background-position: right 8px center;
padding-right: 24px;
}
.ch-instrument-select:focus {
border-color: var(--accent-blue);
box-shadow: 0 0 4px rgba(79, 195, 247, 0.3);
}
.ch-instrument-select option {
background: var(--bg-primary);
color: var(--text-primary);
}
/* ===== Responsive ===== */
@media (max-height: 280px) {
.channel-strip { gap: 2px; padding: 4px; }
.meter-stereo { height: 40px; }
.ch-knobs-row { gap: 2px; }
:root { --knob-size: 40px; }
.knob-grip { height: 12px; top: 4px; transform-origin: 2px 16px; }
.ch-label { font-size: 10px; }
}
@media (min-height: 400px) {
.meter-stereo { height: 90px; }
:root { --knob-size: 64px; }
}
+49
View File
@@ -0,0 +1,49 @@
# OPLabsBandChannel shared library
add_library(OPLabsBandChannel SHARED
OPLabsBandChannel.cpp
OPLabsBandChannel.hpp
)
target_include_directories(OPLabsBandChannel
PRIVATE
${LV2_INCLUDE_DIR}
)
target_compile_options(OPLabsBandChannel PRIVATE -Wall -Wextra -Wpedantic)
# Output .so directly into the LV2 bundle directory
set_target_properties(OPLabsBandChannel PROPERTIES
LIBRARY_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/lv2/OPLabsBandChannel.lv2"
OUTPUT_NAME "OPLabsBandChannel"
PREFIX ""
)
# Version script export only lv2_descriptor
target_link_options(OPLabsBandChannel PRIVATE
-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/OPLabsBandChannel.version
-Wl,-z,nodelete
)
# OPLabsBandBus shared library
add_library(OPLabsBandBus SHARED
OPLabsBandBus.cpp
OPLabsBandBus.hpp
)
target_include_directories(OPLabsBandBus
PRIVATE
${LV2_INCLUDE_DIR}
)
target_compile_options(OPLabsBandBus PRIVATE -Wall -Wextra -Wpedantic)
set_target_properties(OPLabsBandBus PROPERTIES
LIBRARY_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/lv2/OPLabsBandBus.lv2"
OUTPUT_NAME "OPLabsBandBus"
PREFIX ""
)
target_link_options(OPLabsBandBus PRIVATE
-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/OPLabsBandBus.version
-Wl,-z,nodelete
)
+319
View File
@@ -0,0 +1,319 @@
#include "OPLabsBandBus.hpp"
#include <cstdio>
#include <algorithm>
// ====================================================================
// LV2 Descriptor
// ====================================================================
static LV2_Descriptor sDescriptor = {
OPLabsBandBus::URI,
OPLabsBandBus::instantiate,
OPLabsBandBus::connectPort,
OPLabsBandBus::activate,
OPLabsBandBus::run,
OPLabsBandBus::deactivate,
OPLabsBandBus::cleanup,
OPLabsBandBus::extensionData
};
LV2_SYMBOL_EXPORT
const LV2_Descriptor* lv2_descriptor(uint32_t index)
{
return (index == 0) ? &sDescriptor : nullptr;
}
// ====================================================================
// State interface (extension data)
// ====================================================================
static const LV2_State_Interface sStateInterface = {
OPLabsBandBus::saveState,
OPLabsBandBus::restoreState
};
// ====================================================================
// Constructor
// ====================================================================
OPLabsBandBus::OPLabsBandBus(double sampleRate,
const LV2_Feature* const* features)
{
(void)sampleRate;
initUrids(features);
}
bool OPLabsBandBus::initUrids(const LV2_Feature* const* features)
{
for (int i = 0; features && features[i]; ++i) {
if (strcmp(features[i]->URI, LV2_URID__map) == 0) {
uridMap = (LV2_URID_Map*)features[i]->data;
break;
}
}
if (!uridMap) {
fprintf(stderr, "OPLabsBandBus: Host does not support urid:map\n");
return false;
}
urid__stateDummy = uridMap->map(
uridMap->handle,
"http://ourpad.casa/plugins/oplabs-band-bus#dummy"
);
return true;
}
// ====================================================================
// Static callbacks
// ====================================================================
LV2_Handle OPLabsBandBus::instantiate(const LV2_Descriptor* descriptor,
double sampleRate,
const char* bundlePath,
const LV2_Feature* const* features)
{
(void)descriptor;
(void)bundlePath;
OPLabsBandBus* self = new OPLabsBandBus(sampleRate, features);
if (!self->uridMap) {
delete self;
return nullptr;
}
return (LV2_Handle)self;
}
void OPLabsBandBus::connectPort(LV2_Handle instance, uint32_t port, void* data)
{
OPLabsBandBus* self = (OPLabsBandBus*)instance;
switch ((Ports)port) {
// Audio inputs
case kCh1L: self->pAudioIn[0][0] = (const float*)data; break;
case kCh1R: self->pAudioIn[0][1] = (const float*)data; break;
case kCh2L: self->pAudioIn[1][0] = (const float*)data; break;
case kCh2R: self->pAudioIn[1][1] = (const float*)data; break;
case kCh3L: self->pAudioIn[2][0] = (const float*)data; break;
case kCh3R: self->pAudioIn[2][1] = (const float*)data; break;
case kCh4L: self->pAudioIn[3][0] = (const float*)data; break;
case kCh4R: self->pAudioIn[3][1] = (const float*)data; break;
case kCh5L: self->pAudioIn[4][0] = (const float*)data; break;
case kCh5R: self->pAudioIn[4][1] = (const float*)data; break;
case kCh6L: self->pAudioIn[5][0] = (const float*)data; break;
case kCh6R: self->pAudioIn[5][1] = (const float*)data; break;
case kCh7L: self->pAudioIn[6][0] = (const float*)data; break;
case kCh7R: self->pAudioIn[6][1] = (const float*)data; break;
case kCh8L: self->pAudioIn[7][0] = (const float*)data; break;
case kCh8R: self->pAudioIn[7][1] = (const float*)data; break;
// Audio outputs
case kOutL: self->pAudioOut[0] = (float*)data; break;
case kOutR: self->pAudioOut[1] = (float*)data; break;
// Per-channel volume
case kCh1Vol: self->pVol[0] = (const float*)data; break;
case kCh2Vol: self->pVol[1] = (const float*)data; break;
case kCh3Vol: self->pVol[2] = (const float*)data; break;
case kCh4Vol: self->pVol[3] = (const float*)data; break;
case kCh5Vol: self->pVol[4] = (const float*)data; break;
case kCh6Vol: self->pVol[5] = (const float*)data; break;
case kCh7Vol: self->pVol[6] = (const float*)data; break;
case kCh8Vol: self->pVol[7] = (const float*)data; break;
// Per-channel pan
case kCh1Pan: self->pPan[0] = (const float*)data; break;
case kCh2Pan: self->pPan[1] = (const float*)data; break;
case kCh3Pan: self->pPan[2] = (const float*)data; break;
case kCh4Pan: self->pPan[3] = (const float*)data; break;
case kCh5Pan: self->pPan[4] = (const float*)data; break;
case kCh6Pan: self->pPan[5] = (const float*)data; break;
case kCh7Pan: self->pPan[6] = (const float*)data; break;
case kCh8Pan: self->pPan[7] = (const float*)data; break;
// Per-channel mute
case kCh1Mute: self->pMute[0] = (const float*)data; break;
case kCh2Mute: self->pMute[1] = (const float*)data; break;
case kCh3Mute: self->pMute[2] = (const float*)data; break;
case kCh4Mute: self->pMute[3] = (const float*)data; break;
case kCh5Mute: self->pMute[4] = (const float*)data; break;
case kCh6Mute: self->pMute[5] = (const float*)data; break;
case kCh7Mute: self->pMute[6] = (const float*)data; break;
case kCh8Mute: self->pMute[7] = (const float*)data; break;
// Master controls
case kMasterVol: self->pMasterVol = (const float*)data; break;
case kMasterMute: self->pMasterMute = (const float*)data; break;
// Per-channel level L outputs
case kCh1LevelL: self->pLevelL[0] = (float*)data; break;
case kCh2LevelL: self->pLevelL[1] = (float*)data; break;
case kCh3LevelL: self->pLevelL[2] = (float*)data; break;
case kCh4LevelL: self->pLevelL[3] = (float*)data; break;
case kCh5LevelL: self->pLevelL[4] = (float*)data; break;
case kCh6LevelL: self->pLevelL[5] = (float*)data; break;
case kCh7LevelL: self->pLevelL[6] = (float*)data; break;
case kCh8LevelL: self->pLevelL[7] = (float*)data; break;
// Per-channel level R outputs
case kCh1LevelR: self->pLevelR[0] = (float*)data; break;
case kCh2LevelR: self->pLevelR[1] = (float*)data; break;
case kCh3LevelR: self->pLevelR[2] = (float*)data; break;
case kCh4LevelR: self->pLevelR[3] = (float*)data; break;
case kCh5LevelR: self->pLevelR[4] = (float*)data; break;
case kCh6LevelR: self->pLevelR[5] = (float*)data; break;
case kCh7LevelR: self->pLevelR[6] = (float*)data; break;
case kCh8LevelR: self->pLevelR[7] = (float*)data; break;
// Master level outputs
case kMasterLevelL: self->pMasterLevelL = (float*)data; break;
case kMasterLevelR: self->pMasterLevelR = (float*)data; break;
default: break;
}
}
void OPLabsBandBus::activate(LV2_Handle instance)
{
(void)instance;
}
void OPLabsBandBus::run(LV2_Handle instance, uint32_t nSamples)
{
OPLabsBandBus* self = (OPLabsBandBus*)instance;
// Read master controls
if (self->pMasterVol) self->cachedMasterVol = *self->pMasterVol;
if (self->pMasterMute) self->cachedMasterMute = (*self->pMasterMute > 0.5f);
// Read per-channel controls
for (uint32_t ch = 0; ch < kNumChannels; ++ch) {
if (self->pVol[ch]) self->cachedVol[ch] = *self->pVol[ch];
if (self->pPan[ch]) self->cachedPan[ch] = *self->pPan[ch];
if (self->pMute[ch]) self->cachedMute[ch] = (*self->pMute[ch] > 0.5f);
}
// Prepare audio output buffers (zero for accumulation)
float* outL = self->pAudioOut[0];
float* outR = self->pAudioOut[1];
if (outL) std::memset(outL, 0, nSamples * sizeof(float));
if (outR) std::memset(outR, 0, nSamples * sizeof(float));
// Master gain (linear)
float masterGain = self->cachedMasterMute ? 0.0f
: dBToGain(self->cachedMasterVol);
// Accumulate each channel into the bus
float newMasterPeakL = -70.0f;
float newMasterPeakR = -70.0f;
for (uint32_t ch = 0; ch < kNumChannels; ++ch) {
const float* inL = self->pAudioIn[ch][0];
const float* inR = self->pAudioIn[ch][1];
bool muted = self->cachedMute[ch];
float chGain = muted ? 0.0f : dBToGain(self->cachedVol[ch]);
float pan = self->cachedPan[ch];
// Equal-power pan coefficients
float panL = 1.0f;
float panR = 1.0f;
if (pan <= 0.0f) {
panR = 1.0f + pan;
} else {
panL = 1.0f - pan;
}
// Per-channel peak tracking
float chPeakL = -70.0f;
float chPeakR = -70.0f;
for (uint32_t s = 0; s < nSamples; ++s) {
float sampleL = inL ? inL[s] : 0.0f;
float sampleR = inR ? inR[s] : 0.0f;
// Apply channel gain
sampleL *= chGain;
sampleR *= chGain;
// Apply pan
float pannedL = sampleL * panL;
float pannedR = sampleR * panR;
// Accumulate into bus
if (outL) outL[s] += pannedL;
if (outR) outR[s] += pannedR;
// Track channel peaks
float absL = std::fabs(pannedL);
float absR = std::fabs(pannedR);
if (absL > chPeakL) chPeakL = absL;
if (absR > chPeakR) chPeakR = absR;
}
// Convert channel peaks to dB and write meters
self->peakL[ch] = (chPeakL > 0.0f)
? (20.0f * std::log10(chPeakL)) : -70.0f;
self->peakR[ch] = (chPeakR > 0.0f)
? (20.0f * std::log10(chPeakR)) : -70.0f;
if (self->peakL[ch] < -70.0f) self->peakL[ch] = -70.0f;
if (self->peakR[ch] < -70.0f) self->peakR[ch] = -70.0f;
if (self->pLevelL[ch]) *self->pLevelL[ch] = self->peakL[ch];
if (self->pLevelR[ch]) *self->pLevelR[ch] = self->peakR[ch];
// Track master peaks (pre-master-gain)
if (chPeakL > newMasterPeakL) newMasterPeakL = chPeakL;
if (chPeakR > newMasterPeakR) newMasterPeakR = chPeakR;
}
// Apply master gain to output buffers
if (masterGain != 1.0f) {
for (uint32_t s = 0; s < nSamples; ++s) {
if (outL) outL[s] *= masterGain;
if (outR) outR[s] *= masterGain;
}
}
// Write master level meters (pre-master-gain reading)
self->peakMasterL = (newMasterPeakL > 0.0f)
? (20.0f * std::log10(newMasterPeakL)) : -70.0f;
self->peakMasterR = (newMasterPeakR > 0.0f)
? (20.0f * std::log10(newMasterPeakR)) : -70.0f;
if (self->peakMasterL < -70.0f) self->peakMasterL = -70.0f;
if (self->peakMasterR < -70.0f) self->peakMasterR = -70.0f;
if (self->pMasterLevelL) *self->pMasterLevelL = self->peakMasterL;
if (self->pMasterLevelR) *self->pMasterLevelR = self->peakMasterR;
}
void OPLabsBandBus::deactivate(LV2_Handle instance)
{
(void)instance;
}
void OPLabsBandBus::cleanup(LV2_Handle instance)
{
delete (OPLabsBandBus*)instance;
}
const void* OPLabsBandBus::extensionData(const char* uri)
{
if (strcmp(uri, LV2_STATE__interface) == 0) {
return &sStateInterface;
}
return nullptr;
}
// ====================================================================
// State save/restore — stub implementations
// ====================================================================
LV2_State_Status OPLabsBandBus::saveState(
LV2_Handle instance,
LV2_State_Store_Function store,
LV2_State_Handle handle,
uint32_t flags,
const LV2_Feature* const* features)
{
(void)instance; (void)store; (void)handle; (void)flags; (void)features;
return LV2_STATE_SUCCESS;
}
LV2_State_Status OPLabsBandBus::restoreState(
LV2_Handle instance,
LV2_State_Retrieve_Function retrieve,
LV2_State_Handle handle,
uint32_t flags,
const LV2_Feature* const* features)
{
(void)instance; (void)retrieve; (void)handle; (void)flags; (void)features;
return LV2_STATE_SUCCESS;
}
+154
View File
@@ -0,0 +1,154 @@
#ifndef OPLABSBANDBUS_HPP
#define OPLABSBANDBUS_HPP
#include <lv2/core/lv2.h>
#include <lv2/state/state.h>
#include <lv2/urid/urid.h>
#include <cstdint>
#include <cmath>
#include <cstring>
/**
* OPLabsBandBus 8-channel stereo bus mixer LV2 plugin.
*
* Sums 8 stereo input pairs into a stereo output with per-channel
* volume, pan, mute controls and peak level metering. Includes master
* volume and mute. Compatible with PiPedal and any LV2 host.
*
* Port layout (62 ports total):
* Audio inputs: ch1L..ch8R (015, 16 ports)
* Audio outputs: outL, outR (1617, 2 ports)
* Controls in: ch1Vol..ch8Vol (1825, 8 ports)
* ch1Pan..ch8Pan (2633, 8 ports)
* ch1Mute..ch8Mute(3441, 8 ports)
* masterVol (42, 1 port)
* masterMute (43, 1 port)
* Controls out: ch1LevelL..ch8LevelL (4451, 8 ports)
* ch1LevelR..ch8LevelR (5259, 8 ports)
* masterLevelL, masterLevelR (6061, 2 ports)
*
* URI: http://ourpad.casa/plugins/oplabs-band-bus#
*/
class OPLabsBandBus {
public:
static constexpr const char* URI = "http://ourpad.casa/plugins/oplabs-band-bus#";
static constexpr uint32_t kNumChannels = 8;
enum Ports : uint32_t {
// Audio inputs (16)
kCh1L = 0, kCh1R = 1,
kCh2L = 2, kCh2R = 3,
kCh3L = 4, kCh3R = 5,
kCh4L = 6, kCh4R = 7,
kCh5L = 8, kCh5R = 9,
kCh6L = 10, kCh6R = 11,
kCh7L = 12, kCh7R = 13,
kCh8L = 14, kCh8R = 15,
// Audio outputs (2)
kOutL = 16,
kOutR = 17,
// Per-channel volume (8)
kCh1Vol = 18, kCh2Vol = 19,
kCh3Vol = 20, kCh4Vol = 21,
kCh5Vol = 22, kCh6Vol = 23,
kCh7Vol = 24, kCh8Vol = 25,
// Per-channel pan (8)
kCh1Pan = 26, kCh2Pan = 27,
kCh3Pan = 28, kCh4Pan = 29,
kCh5Pan = 30, kCh6Pan = 31,
kCh7Pan = 32, kCh8Pan = 33,
// Per-channel mute (8)
kCh1Mute = 34, kCh2Mute = 35,
kCh3Mute = 36, kCh4Mute = 37,
kCh5Mute = 38, kCh6Mute = 39,
kCh7Mute = 40, kCh8Mute = 41,
// Master controls (2)
kMasterVol = 42,
kMasterMute = 43,
// Per-channel level L (8)
kCh1LevelL = 44, kCh2LevelL = 45,
kCh3LevelL = 46, kCh4LevelL = 47,
kCh5LevelL = 48, kCh6LevelL = 49,
kCh7LevelL = 50, kCh8LevelL = 51,
// Per-channel level R (8)
kCh1LevelR = 52, kCh2LevelR = 53,
kCh3LevelR = 54, kCh4LevelR = 55,
kCh5LevelR = 56, kCh6LevelR = 57,
kCh7LevelR = 58, kCh8LevelR = 59,
// Master level (2)
kMasterLevelL = 60,
kMasterLevelR = 61,
kNumPorts = 62
};
// ---- Static LV2 callbacks ----
static LV2_Handle instantiate(const LV2_Descriptor* descriptor,
double sampleRate,
const char* bundlePath,
const LV2_Feature* const* features);
static void connectPort(LV2_Handle instance, uint32_t port, void* data);
static void activate(LV2_Handle instance);
static void run(LV2_Handle instance, uint32_t nSamples);
static void deactivate(LV2_Handle instance);
static void cleanup(LV2_Handle instance);
static const void* extensionData(const char* uri);
// ---- State callbacks ----
static LV2_State_Status saveState(LV2_Handle instance,
LV2_State_Store_Function store,
LV2_State_Handle handle,
uint32_t flags,
const LV2_Feature* const* features);
static LV2_State_Status restoreState(LV2_Handle instance,
LV2_State_Retrieve_Function retrieve,
LV2_State_Handle handle,
uint32_t flags,
const LV2_Feature* const* features);
private:
OPLabsBandBus(double sampleRate, const LV2_Feature* const* features);
~OPLabsBandBus() = default;
OPLabsBandBus(const OPLabsBandBus&) = delete;
OPLabsBandBus& operator=(const OPLabsBandBus&) = delete;
bool initUrids(const LV2_Feature* const* features);
static inline float dBToGain(float dB) {
return std::pow(10.0f, dB / 20.0f);
}
// URID map
LV2_URID_Map* uridMap = nullptr;
LV2_URID urid__stateDummy = 0;
// Audio port pointers [ch][0=L,1=R]
const float* pAudioIn[8][2] = {};
float* pAudioOut[2] = {};
// Control input port pointers
const float* pVol[8] = {};
const float* pPan[8] = {};
const float* pMute[8] = {};
const float* pMasterVol = nullptr;
const float* pMasterMute = nullptr;
// Control output port pointers (meters)
float* pLevelL[8] = {};
float* pLevelR[8] = {};
float* pMasterLevelL = nullptr;
float* pMasterLevelR = nullptr;
// Cached parameter values
float cachedVol[8] = {};
float cachedPan[8] = {};
bool cachedMute[8] = {};
float cachedMasterVol = 0.0f;
bool cachedMasterMute = false;
// Peak meter state
float peakL[8] = {};
float peakR[8] = {};
float peakMasterL = -70.0f;
float peakMasterR = -70.0f;
};
#endif // OPLABSBANDBUS_HPP
+6
View File
@@ -0,0 +1,6 @@
VERS_1.0 {
global:
lv2_descriptor;
local:
*;
};
+312
View File
@@ -0,0 +1,312 @@
#include "OPLabsBandChannel.hpp"
#include <cstdlib>
#include <cstdio>
#include <algorithm>
// ====================================================================
// LV2 Descriptor
// ====================================================================
static LV2_Descriptor sDescriptor = {
OPLabsBandChannel::URI,
OPLabsBandChannel::instantiate,
OPLabsBandChannel::connectPort,
OPLabsBandChannel::activate,
OPLabsBandChannel::run,
OPLabsBandChannel::deactivate,
OPLabsBandChannel::cleanup,
OPLabsBandChannel::extensionData
};
LV2_SYMBOL_EXPORT
const LV2_Descriptor* lv2_descriptor(uint32_t index)
{
return (index == 0) ? &sDescriptor : nullptr;
}
// ====================================================================
// State interface (extension data)
// ====================================================================
static const LV2_State_Interface sStateInterface = {
OPLabsBandChannel::saveState,
OPLabsBandChannel::restoreState
};
// ====================================================================
// Constructor / Destructor helpers
// ====================================================================
OPLabsBandChannel::OPLabsBandChannel(double sampleRate,
const LV2_Feature* const* features)
{
(void)sampleRate;
initUrids(features);
}
bool OPLabsBandChannel::initUrids(const LV2_Feature* const* features)
{
for (int i = 0; features && features[i]; ++i) {
if (strcmp(features[i]->URI, LV2_URID__map) == 0) {
uridMap = (LV2_URID_Map*)features[i]->data;
break;
}
}
if (!uridMap) {
fprintf(stderr, "OPLabsBandChannel: Host does not support urid:map\n");
return false;
}
// Map state key URIDs
urid__stateInstrument = uridMap->map(
uridMap->handle,
"http://ourpad.casa/plugins/oplabs-band-channel#instrument"
);
return true;
}
// ====================================================================
// Static callbacks
// ====================================================================
LV2_Handle OPLabsBandChannel::instantiate(const LV2_Descriptor* descriptor,
double sampleRate,
const char* bundlePath,
const LV2_Feature* const* features)
{
(void)descriptor;
(void)bundlePath;
OPLabsBandChannel* self = new OPLabsBandChannel(sampleRate, features);
if (!self->uridMap) {
delete self;
return nullptr;
}
return (LV2_Handle)self;
}
void OPLabsBandChannel::connectPort(LV2_Handle instance, uint32_t port, void* data)
{
OPLabsBandChannel* self = (OPLabsBandChannel*)instance;
switch ((Ports)port) {
case kVolume:
self->pVolume = (const float*)data;
break;
case kPan:
self->pPan = (const float*)data;
break;
case kMute:
self->pMute = (const float*)data;
break;
case kSolo:
self->pSolo = (const float*)data;
break;
case kInstrument:
self->pInstrument = (const float*)data;
break;
case kLevelL:
self->pLevelL = (float*)data;
break;
case kLevelR:
self->pLevelR = (float*)data;
break;
case kInL:
self->pInL = (const float*)data;
break;
case kInR:
self->pInR = (const float*)data;
break;
case kOutL:
self->pOutL = (float*)data;
break;
case kOutR:
self->pOutR = (float*)data;
break;
default:
break;
}
}
void OPLabsBandChannel::activate(LV2_Handle instance)
{
(void)instance;
// No-op for now — buffer allocations go here when DSP is added
}
void OPLabsBandChannel::run(LV2_Handle instance, uint32_t nSamples)
{
OPLabsBandChannel* self = (OPLabsBandChannel*)instance;
// Read control values (with caching to detect changes)
if (self->pVolume) self->cachedVolume = *self->pVolume;
if (self->pPan) self->cachedPan = *self->pPan;
if (self->pMute) self->cachedMute = (*self->pMute > 0.5f);
if (self->pSolo) self->cachedSolo = (*self->pSolo > 0.5f);
if (self->pInstrument) self->cachedInstrument = (int)(*self->pInstrument + 0.5f);
const float* inL = self->pInL ? self->pInL : nullptr;
const float* inR = self->pInR ? self->pInR : nullptr;
float* outL = self->pOutL ? self->pOutL : nullptr;
float* outR = self->pOutR ? self->pOutR : nullptr;
// If muted, output silence and update meters
if (self->cachedMute) {
if (outL) std::memset(outL, 0, nSamples * sizeof(float));
if (outR) std::memset(outR, 0, nSamples * sizeof(float));
if (self->pLevelL) *self->pLevelL = -60.0f;
if (self->pLevelR) *self->pLevelR = -60.0f;
self->peakL = -60.0f;
self->peakR = -60.0f;
return;
}
// Compute linear gain from dB
float linearGain = dBToGain(self->cachedVolume);
// Compute pan coefficients (equal power)
// pan = -1 → full left, 0 → center, +1 → full right
float panL = 1.0f;
float panR = 1.0f;
if (self->cachedPan <= 0.0f) {
// Pan left: reduce right
panR = 1.0f + self->cachedPan; // cachedPan is [-1..0], so panR is [0..1]
} else {
// Pan right: reduce left
panL = 1.0f - self->cachedPan; // cachedPan is [0..1], so panL is [0..1]
}
// Process audio samples
float newPeakL = -60.0f;
float newPeakR = -60.0f;
for (uint32_t s = 0; s < nSamples; ++s) {
float sampleL = inL ? inL[s] : 0.0f;
float sampleR = inR ? inR[s] : 0.0f;
// Apply gain
sampleL *= linearGain;
sampleR *= linearGain;
// Apply pan — stereo balance pan
// (stereo pan: independent per-channel would be different, but
// this is the standard "balance" pan for a stereo channel strip)
if (outL) outL[s] = sampleL * panL;
if (outR) outR[s] = sampleR * panR;
// Track peaks
float absL = std::fabs(outL ? outL[s] : 0.0f);
float absR = std::fabs(outR ? outR[s] : 0.0f);
if (absL > newPeakL) newPeakL = absL;
if (absR > newPeakR) newPeakR = absR;
}
// Convert peak amplitude to dB
self->peakL = (newPeakL > 0.0f) ? (20.0f * std::log10(newPeakL)) : -60.0f;
self->peakR = (newPeakR > 0.0f) ? (20.0f * std::log10(newPeakR)) : -60.0f;
// Clamp to -60 dB minimum for meter display
if (self->peakL < -60.0f) self->peakL = -60.0f;
if (self->peakR < -60.0f) self->peakR = -60.0f;
// Write meter outputs
if (self->pLevelL) *self->pLevelL = self->peakL;
if (self->pLevelR) *self->pLevelR = self->peakR;
}
void OPLabsBandChannel::deactivate(LV2_Handle instance)
{
(void)instance;
}
void OPLabsBandChannel::cleanup(LV2_Handle instance)
{
delete (OPLabsBandChannel*)instance;
}
const void* OPLabsBandChannel::extensionData(const char* uri)
{
if (strcmp(uri, LV2_STATE__interface) == 0) {
return &sStateInterface;
}
return nullptr;
}
// ====================================================================
// State save/restore
// ====================================================================
LV2_State_Status OPLabsBandChannel::saveState(
LV2_Handle instance,
LV2_State_Store_Function store,
LV2_State_Handle handle,
uint32_t flags,
const LV2_Feature* const* features)
{
(void)flags;
(void)features;
OPLabsBandChannel* self = (OPLabsBandChannel*)instance;
// Save instrument selection
if (self->urid__stateInstrument) {
int32_t instr = self->cachedInstrument;
store(handle,
self->urid__stateInstrument,
&instr,
sizeof(int32_t),
self->uridMap->map(self->uridMap->handle, LV2_ATOM__Int),
LV2_STATE_IS_POD | LV2_STATE_IS_PORTABLE);
}
return LV2_STATE_SUCCESS;
}
LV2_State_Status OPLabsBandChannel::restoreState(
LV2_Handle instance,
LV2_State_Retrieve_Function retrieve,
LV2_State_Handle handle,
uint32_t flags,
const LV2_Feature* const* features)
{
(void)flags;
(void)features;
OPLabsBandChannel* self = (OPLabsBandChannel*)instance;
// Restore instrument selection
if (self->urid__stateInstrument) {
size_t size = 0;
uint32_t type = 0;
uint32_t valFlags = 0;
const void* data = retrieve(handle,
self->urid__stateInstrument,
&size, &type, &valFlags);
if (data && size == sizeof(int32_t)) {
int32_t instr = *(const int32_t*)data;
if (instr >= 0 && instr <= 4) {
self->cachedInstrument = instr;
// Update the control port if connected
if (self->pInstrument) {
*(const_cast<float*>(self->pInstrument)) = (float)instr;
}
}
}
}
return LV2_STATE_SUCCESS;
}
float OPLabsBandChannel::computePeakDB(const float* buffer,
uint32_t nSamples,
float currentPeak)
{
float peak = currentPeak;
for (uint32_t s = 0; s < nSamples; ++s) {
float absVal = std::fabs(buffer[s]);
if (absVal > peak) peak = absVal;
}
// Peak-to-decibel conversion happens in the caller;
// keeping this helper for future use
return peak;
}
+126
View File
@@ -0,0 +1,126 @@
#ifndef OPLABSBANDCHANNEL_HPP
#define OPLABSBANDCHANNEL_HPP
#include <lv2/core/lv2.h>
#include <lv2/state/state.h>
#include <lv2/urid/urid.h>
#include <lv2/atom/atom.h>
#include <cstdint>
#include <cmath>
#include <cstring>
/**
* OPLabsBandChannel Stereo channel strip LV2 plugin.
*
* Provides volume, pan, mute, solo, and instrument type controls
* with peak level metering. Compatible with PiPedal and any LV2 host.
*
* URI: http://ourpad.casa/plugins/oplabs-band-channel#
*/
class OPLabsBandChannel {
public:
/** Plugin URI constant. */
static constexpr const char* URI = "http://ourpad.casa/plugins/oplabs-band-channel#";
/** Port index enum — must match OPLabsBandChannel.ttl lv2:index values exactly. */
enum Ports : uint32_t {
kVolume = 0, // Control input, -60..+6 dB, default 0
kPan = 1, // Control input, -1..+1, default 0
kMute = 2, // Control input, toggled 0/1
kSolo = 3, // Control input, toggled 0/1
kInstrument = 4, // Control input, enumeration 0..4
kLevelL = 5, // Control output, -60..0 dB
kLevelR = 6, // Control output, -60..0 dB
kInL = 7, // Audio input, left
kInR = 8, // Audio input, right
kOutL = 9, // Audio output, left
kOutR = 10, // Audio output, right
kNumPorts = 11
};
// ---- LV2 descriptor callbacks (static) ----
static LV2_Handle instantiate(const LV2_Descriptor* descriptor,
double sampleRate,
const char* bundlePath,
const LV2_Feature* const* features);
static void connectPort(LV2_Handle instance, uint32_t port, void* data);
static void activate(LV2_Handle instance);
static void run(LV2_Handle instance, uint32_t nSamples);
static void deactivate(LV2_Handle instance);
static void cleanup(LV2_Handle instance);
static const void* extensionData(const char* uri);
// ---- State extension callbacks (static) ----
static LV2_State_Status saveState(LV2_Handle instance,
LV2_State_Store_Function store,
LV2_State_Handle handle,
uint32_t flags,
const LV2_Feature* const* features);
static LV2_State_Status restoreState(LV2_Handle instance,
LV2_State_Retrieve_Function retrieve,
LV2_State_Handle handle,
uint32_t flags,
const LV2_Feature* const* features);
private:
OPLabsBandChannel(double sampleRate, const LV2_Feature* const* features);
~OPLabsBandChannel() = default;
// Non-copyable, non-movable
OPLabsBandChannel(const OPLabsBandChannel&) = delete;
OPLabsBandChannel& operator=(const OPLabsBandChannel&) = delete;
/** Initialize URID mapping from features. */
bool initUrids(const LV2_Feature* const* features);
/** Convert dB to linear gain. */
static inline float dBToGain(float dB) {
return std::pow(10.0f, dB / 20.0f);
}
/** Compute peak level in dB from a buffer. Returns -60 dB for silence. */
static float computePeakDB(const float* buffer, uint32_t nSamples, float currentPeak);
// ---- Instance data ----
// URID map feature (provided by host)
LV2_URID_Map* uridMap = nullptr;
// State keys (mapped URIDs)
LV2_URID urid__stateInstrument = 0;
// Port data pointers (set by connectPort)
const float* pVolume = nullptr;
const float* pPan = nullptr;
const float* pMute = nullptr;
const float* pSolo = nullptr;
const float* pInstrument = nullptr;
float* pLevelL = nullptr;
float* pLevelR = nullptr;
const float* pInL = nullptr;
const float* pInR = nullptr;
float* pOutL = nullptr;
float* pOutR = nullptr;
// Cached parameter values
float cachedVolume = 0.0f;
float cachedPan = 0.0f;
bool cachedMute = false;
bool cachedSolo = false;
int cachedInstrument = 0;
// Peak meters (smoothed)
float peakL = -60.0f;
float peakR = -60.0f;
};
#endif // OPLABSBANDCHANNEL_HPP
+6
View File
@@ -0,0 +1,6 @@
VERS_1.0 {
global:
lv2_descriptor;
local:
*;
};