Skip to content

Commit 6e10fd1

Browse files
committed
Merge branch 'devel'
2 parents b03a7f5 + 2ba7b13 commit 6e10fd1

22 files changed

Lines changed: 608 additions & 216 deletions

.cproject

Lines changed: 254 additions & 8 deletions
Large diffs are not rendered by default.

.github/workflows/build.yml

Lines changed: 85 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -24,19 +24,21 @@ jobs:
2424
steps:
2525
- name: Add debug repositories
2626
run: |
27-
printf "[core-debug]\nInclude = /etc/pacman.d/mirrorlist\n[extra-debug]\nInclude = /etc/pacman.d/mirrorlist\n[community-debug]\nInclude = /etc/pacman.d/mirrorlist" >> /etc/pacman.conf
27+
printf "[core-debug]\nInclude = /etc/pacman.d/mirrorlist\n[extra-debug]\nInclude = /etc/pacman.d/mirrorlist\n[multilib-debug]\nInclude = /etc/pacman.d/mirrorlist" >> /etc/pacman.conf
2828
printf 'Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch\n%s\n' "$(cat /etc/pacman.d/mirrorlist)" > /etc/pacman.d/mirrorlist
2929
- name: Install dependencies
30-
run: pacman --noconfirm -Syu alsa-lib base-devel cairo carla git glibc-debug hicolor-icon-theme jack jq ladspa libglvnd libsndfile libx11 libxrandr lv2 lv2lint php valgrind
30+
run: pacman --noconfirm -Syu alsa-lib base-devel cairo carla git glibc-debug hicolor-icon-theme jack jq libglvnd libsndfile libx11 libxrandr lv2lint php valgrind
3131
- uses: actions/checkout@v3
3232
- name: Configure project
33-
run: make config VERBOSE=1 FEATURES='doc jack ladspa lv2 vst2 xdg' PREFIX=/usr
33+
run: make config STRICT=1 VERBOSE=1 FEATURES='clap doc jack ladspa lv2 vst2 xdg' PREFIX=/usr
3434
- name: Fetch project dependencies
3535
run: make fetch
3636
- name: Build project
3737
run: make VERBOSE=1
3838
- name: Install binaries
3939
run: make install
40+
- name: System information
41+
run: lscpu
4042
- name: Lint LV2 plugins
4143
run: |
4244
for _plugin in $(jq -r '.plugins[].lv2_uri | select( . != null )' ${{ env.PLUGIN_METADATA }} ); do \
@@ -60,26 +62,69 @@ jobs:
6062
valgrind ${{ env.VALGRIND_ARGS }} /usr/lib/carla/carla-bridge-native vst2 "${_binary}" "" 1>/dev/null; \
6163
done
6264
63-
arch_linux_debug:
65+
arch_linux_asan:
6466
runs-on: ubuntu-latest
6567
container:
6668
image: archlinux:latest
6769
steps:
6870
- name: Add debug repositories
6971
run: |
70-
printf "[core-debug]\nInclude = /etc/pacman.d/mirrorlist\n[extra-debug]\nInclude = /etc/pacman.d/mirrorlist\n[community-debug]\nInclude = /etc/pacman.d/mirrorlist" >> /etc/pacman.conf
72+
printf "[core-debug]\nInclude = /etc/pacman.d/mirrorlist\n[extra-debug]\nInclude = /etc/pacman.d/mirrorlist\n[multilib-debug]\nInclude = /etc/pacman.d/mirrorlist" >> /etc/pacman.conf
7173
printf 'Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch\n%s\n' "$(cat /etc/pacman.d/mirrorlist)" > /etc/pacman.d/mirrorlist
7274
- name: Install dependencies
73-
run: pacman --noconfirm -Syu alsa-lib base-devel cairo carla git glibc-debug hicolor-icon-theme jack jq ladspa libglvnd libsndfile libx11 libxrandr lv2 php valgrind
75+
run: pacman --noconfirm -Syu alsa-lib base-devel cairo carla git glibc-debug hicolor-icon-theme jack jq libglvnd libsndfile libx11 libxrandr php valgrind
7476
- uses: actions/checkout@v3
7577
- name: Configure project
76-
run: make config DEBUG=1 VERBOSE=1 FEATURES='jack ladspa lv2 vst2' PREFIX=/usr
78+
run: make config STRICT=1 DEBUG=1 VERBOSE=1 ASAN=1 FEATURES='clap jack ladspa lv2 vst2' PREFIX=/usr
7779
- name: Fetch project dependencies
7880
run: make fetch
7981
- name: Build project
8082
run: make VERBOSE=1
8183
- name: Install binaries
8284
run: make install
85+
- name: System information
86+
run: lscpu
87+
- name: LADSPA runtime checks
88+
run: |
89+
for _plugin in $(jq -r '.plugins[].ladspa_label | select( . != null )' ${{ env.PLUGIN_METADATA }}); do \
90+
export ASAN_OPTIONS=verify_asan_link_order=0; \
91+
/usr/lib/carla/carla-bridge-native ladspa /usr/lib/ladspa/lsp-*.so "${_plugin}" 1>/dev/null; \
92+
done
93+
- name: LV2 runtime checks
94+
run: |
95+
for _plugin in $(jq -r '.plugins[].lv2_uri | select( . != null )' ${{ env.PLUGIN_METADATA }}); do \
96+
export ASAN_OPTIONS=verify_asan_link_order=0; \
97+
/usr/lib/carla/carla-bridge-native lv2 "" "${_plugin}" 1>/dev/null; \
98+
done
99+
- name: VST2 runtime checks
100+
run: |
101+
for _binary in $(ls /usr/lib/vst/lsp-plugins/*.so | grep -v /lsp-plugins-); do \
102+
export ASAN_OPTIONS=verify_asan_link_order=0; \
103+
/usr/lib/carla/carla-bridge-native vst2 "${_binary}" "" 1>/dev/null; \
104+
done
105+
106+
arch_linux_valgrind:
107+
runs-on: ubuntu-latest
108+
container:
109+
image: archlinux:latest
110+
steps:
111+
- name: Add debug repositories
112+
run: |
113+
printf "[core-debug]\nInclude = /etc/pacman.d/mirrorlist\n[extra-debug]\nInclude = /etc/pacman.d/mirrorlist\n[multilib-debug]\nInclude = /etc/pacman.d/mirrorlist" >> /etc/pacman.conf
114+
printf 'Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch\n%s\n' "$(cat /etc/pacman.d/mirrorlist)" > /etc/pacman.d/mirrorlist
115+
- name: Install dependencies
116+
run: pacman --noconfirm -Syu alsa-lib base-devel cairo carla git glibc-debug hicolor-icon-theme jack jq libglvnd libsndfile libx11 libxrandr php valgrind
117+
- uses: actions/checkout@v3
118+
- name: Configure project
119+
run: make config STRICT=1 DEBUG=1 VERBOSE=1 FEATURES='clap jack ladspa lv2 vst2' PREFIX=/usr
120+
- name: Fetch project dependencies
121+
run: make fetch
122+
- name: Build project
123+
run: make VERBOSE=1
124+
- name: Install binaries
125+
run: make install
126+
- name: System information
127+
run: lscpu
83128
- name: LADSPA runtime checks
84129
run: |
85130
for _plugin in $(jq -r '.plugins[].ladspa_label | select( . != null )' ${{ env.PLUGIN_METADATA }}); do \
@@ -102,10 +147,10 @@ jobs:
102147
image: opensuse/leap:latest
103148
steps:
104149
- name: Install dependencies
105-
run: zypper --non-interactive --no-gpg-checks in tar gzip gcc gcc-c++ git make php valgrind libX11-devel libXrandr-devel libjack-devel cairo-devel freetype2-devel libsndfile-devel lv2-devel ladspa-devel
150+
run: zypper --non-interactive --no-gpg-checks in tar gzip gcc gcc-c++ git make php valgrind libX11-devel libXrandr-devel Mesa-libGL-devel libjack-devel cairo-devel freetype2-devel libsndfile-devel
106151
- uses: actions/checkout@v3
107152
- name: Configure project
108-
run: make config VERBOSE=1 FEATURES='doc jack ladspa lv2 vst2 xdg' PREFIX=/usr
153+
run: make config STRICT=1 VERBOSE=1 FEATURES='clap doc jack ladspa lv2 vst2 xdg' PREFIX=/usr
109154
- name: Fetch project dependencies
110155
run: make fetch
111156
- name: Build project
@@ -119,10 +164,10 @@ jobs:
119164
image: opensuse/tumbleweed:latest
120165
steps:
121166
- name: Install dependencies
122-
run: zypper --non-interactive --no-gpg-checks in tar gzip gcc gcc-c++ clang lld git make php8-cli valgrind libstdc++-devel libX11-devel libXrandr-devel libjack-devel cairo-devel freetype2-devel libsndfile-devel lv2-devel ladspa-devel
167+
run: zypper --non-interactive --no-gpg-checks in tar gzip gcc gcc-c++ clang lld git make php8-cli valgrind libstdc++-devel libX11-devel libXrandr-devel Mesa-libGL-devel libjack-devel cairo-devel freetype2-devel libsndfile-devel
123168
- uses: actions/checkout@v3
124169
- name: Configure project
125-
run: make config CC=clang CXX=clang++ VERBOSE=1 FEATURES='doc jack ladspa lv2 vst2 xdg' PREFIX=/usr
170+
run: make config CC=clang CXX=clang++ STRICT=1 VERBOSE=1 FEATURES='clap doc jack ladspa lv2 vst2 xdg' PREFIX=/usr
126171
- name: Fetch project dependencies
127172
run: make fetch
128173
- name: Build project
@@ -138,14 +183,41 @@ jobs:
138183
- name: Update repositories
139184
run: apt-get update
140185
- name: Install dependencies
141-
run: apt-get -y install gcc g++ git make php-cli pkg-config valgrind libx11-dev libxrandr-dev libjack-dev libcairo2-dev libgl-dev libfreetype6-dev libsndfile1-dev lv2-dev ladspa-sdk
186+
run: apt-get -y install gcc g++ git make php-cli pkg-config valgrind libx11-dev libxrandr-dev libjack-dev libcairo2-dev libgl-dev libfreetype6-dev libsndfile1-dev
142187
- uses: actions/checkout@v3
143188
- name: Configure project
144-
run: make config VERBOSE=1 FEATURES='doc jack ladspa lv2 vst2 xdg' PREFIX=/usr
189+
run: make config STRICT=1 VERBOSE=1 FEATURES='clap doc jack ladspa lv2 vst2 xdg' PREFIX=/usr
145190
- name: Fetch project dependencies
146191
run: make fetch
147192
- name: Build project
148193
run: make VERBOSE=1
149194
- name: Install binaries
150195
run: make install
151196

197+
windows_mingw64:
198+
runs-on: windows-2022
199+
defaults:
200+
run:
201+
shell: msys2 {0}
202+
steps:
203+
- name: Setup MSYS2 and install dependencies
204+
uses: msys2/setup-msys2@v2
205+
with:
206+
msystem: MINGW64
207+
release: false
208+
update: false
209+
install: >-
210+
base-devel
211+
git
212+
mingw-w64-x86_64-gcc
213+
- uses: actions/checkout@v3
214+
- name: Configure project
215+
shell: msys2 {0}
216+
run: make config STRICT=1 VERBOSE=1 FEATURES='clap ladspa lv2 vst2'
217+
- name: Fetch project dependencies
218+
shell: msys2 {0}
219+
run: make fetch
220+
- name: Build project
221+
shell: msys2 {0}
222+
run: make VERBOSE=1
223+

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,5 @@
1414
/.config.mk
1515
/INSTALL/
1616
/modules/
17+
/DebugLinux/
18+
/DebugWin/

CHANGELOG

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@
44

55
=== 1.0.0 ===
66

7-
* TODO: write chanes here as a dot list.
7+
* TODO: write changes here as a dot list.

Makefile

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/usr/bin/make -f
22
#
3-
# Copyright (C) 2020 Linux Studio Plugins Project <https://lsp-plug.in/>
4-
# (C) 2020 Vladimir Sadovnikov <sadko4u@gmail.com>
3+
# Copyright (C) PLUGIN_ISSUE_YEAR Linux Studio Plugins Project <https://lsp-plug.in/>
4+
# (C) PLUGIN_ISSUE_YEAR Vladimir Sadovnikov <sadko4u@gmail.com>
55
#
66
# This file is part of lsp-plugins-plugin-template
77
#
@@ -61,9 +61,9 @@ DISTSRC_FILES = \
6161
$(wildcard $(BASEDIR)/*.txt)
6262

6363
.DEFAULT_GOAL := all
64-
.PHONY: all compile install uninstall depend clean package
64+
.PHONY: all compile install uninstall clean package
6565

66-
compile all install uninstall depend package:
66+
compile all install uninstall package:
6767
$(CHK_CONFIG)
6868
$(MAKE) -C "$(BASEDIR)/src" $(@) VERBOSE="$(VERBOSE)" CONFIG="$(CONFIG)" DESTDIR="$(DESTDIR)"
6969

@@ -123,7 +123,6 @@ help:
123123
echo " all Build all binaries"
124124
echo " clean Clean all build files and configuration file"
125125
echo " config Configure build"
126-
echo " depend Update build dependencies for current project"
127126
echo " devel Configure build as development build"
128127
echo " distsrc Make tarball with source code for packagers"
129128
echo " fetch Fetch all desired source code dependencies from git"
@@ -140,6 +139,7 @@ help:
140139
$(MAKE) -f "$(BASEDIR)/make/configure.mk" $(@) VERBOSE="$(VERBOSE)"
141140
echo ""
142141
echo "Available FEATURES:"
142+
echo " clap CLAP plugin format binaries"
143143
echo " doc Generate standalone HTML documentation"
144144
echo " jack Standalone JACK plugins"
145145
echo " ladspa LADSPA plugins"

dependencies.mk

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#
2-
# Copyright (C) 2020 Linux Studio Plugins Project <https://lsp-plug.in/>
3-
# (C) 2020 Vladimir Sadovnikov <sadko4u@gmail.com>
2+
# Copyright (C) PLUGIN_ISSUE_YEAR Linux Studio Plugins Project <https://lsp-plug.in/>
3+
# (C) PLUGIN_ISSUE_YEAR Vladimir Sadovnikov <sadko4u@gmail.com>
44
#
55
# This file is part of lsp-plugins-plugin-template
66
#

include/private/meta/plugin_template.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
/*
2-
* Copyright (C) 2020 Linux Studio Plugins Project <https://lsp-plug.in/>
3-
* (C) 2020 Vladimir Sadovnikov <sadko4u@gmail.com>
2+
* Copyright (C) PLUGIN_ISSUE_YEAR Linux Studio Plugins Project <https://lsp-plug.in/>
3+
* (C) PLUGIN_ISSUE_YEAR Vladimir Sadovnikov <sadko4u@gmail.com>
44
*
55
* This file is part of lsp-plugins-plugin-template
6-
* Created on: 25 нояб. 2020 г.
6+
* Created on: PLUGIN_ISSUE_DATE г.
77
*
88
* lsp-plugins-plugin-template is free software: you can redistribute it and/or modify
99
* it under the terms of the GNU Lesser General Public License as published by

include/private/plugins/plugin_template.h

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
/*
2-
* Copyright (C) 2020 Linux Studio Plugins Project <https://lsp-plug.in/>
3-
* (C) 2020 Vladimir Sadovnikov <sadko4u@gmail.com>
2+
* Copyright (C) PLUGIN_ISSUE_YEAR Linux Studio Plugins Project <https://lsp-plug.in/>
3+
* (C) PLUGIN_ISSUE_YEAR Vladimir Sadovnikov <sadko4u@gmail.com>
44
*
55
* This file is part of lsp-plugins-plugin-template
6-
* Created on: 25 нояб. 2020 г.
6+
* Created on: PLUGIN_ISSUE_DATE г.
77
*
88
* lsp-plugins-plugin-template is free software: you can redistribute it and/or modify
99
* it under the terms of the GNU Lesser General Public License as published by
@@ -36,10 +36,6 @@ namespace lsp
3636
*/
3737
class plugin_template: public plug::Module
3838
{
39-
private:
40-
plugin_template & operator = (const plugin_template &);
41-
plugin_template (const plugin_template &);
42-
4339
protected:
4440
enum mode_t
4541
{
@@ -82,18 +78,26 @@ namespace lsp
8278

8379
uint8_t *pData; // Allocated data
8480

81+
protected:
82+
void do_destroy();
83+
8584
public:
8685
explicit plugin_template(const meta::plugin_t *meta);
87-
virtual ~plugin_template();
86+
plugin_template (const plugin_template &) = delete;
87+
plugin_template (plugin_template &&) = delete;
88+
virtual ~plugin_template() override;
89+
90+
plugin_template & operator = (const plugin_template &) = delete;
91+
plugin_template & operator = (plugin_template &&) = delete;
8892

89-
virtual void init(plug::IWrapper *wrapper, plug::IPort **ports);
90-
void destroy();
93+
virtual void init(plug::IWrapper *wrapper, plug::IPort **ports) override;
94+
virtual void destroy() override;
9195

9296
public:
93-
virtual void update_sample_rate(long sr);
94-
virtual void update_settings();
95-
virtual void process(size_t samples);
96-
virtual void dump(dspu::IStateDumper *v) const;
97+
virtual void update_sample_rate(long sr) override;
98+
virtual void update_settings() override;
99+
virtual void process(size_t samples) override;
100+
virtual void dump(dspu::IStateDumper *v) const override;
97101
};
98102

99103
} /* namespace plugins */

0 commit comments

Comments
 (0)