Files
gentoo/media-plugins/caps-plugins/files/caps-plugins-0.9.26-c++17.patch

387 lines
8.8 KiB
Diff

The register keyword is unused since C++17.
Reserved typedefs are renamed to fixed width integer types (C++11).
For each math operation, v4f_map is replaced with a non-template function.
Bug: https://bugs.gentoo.org/919719
Bug: https://bugs.gentoo.org/830049
Bug: https://bugs.gentoo.org/731040
--- a/CabIII.cc
+++ b/CabIII.cc
@@ -78,7 +78,7 @@ CabinetIII::cycle (uint frames)
for (uint i = 0; i < frames; ++i)
{
- register cabinet_float acc = s[i] + normal;
+ cabinet_float acc = s[i] + normal;
x[h] = acc;
acc *= a[0];
--- a/Reverb.cc
+++ b/Reverb.cc
@@ -247,8 +247,8 @@ PlateStub::process(sample_t x, sample_t decay, sample_t * _xl, sample_t * _xr)
x = input.lattice[3].process(x, indiff2);
/* summation point */
- register double xl = x + decay*tank.delay[3].get();
- register double xr = x + decay*tank.delay[1].get();
+ double xl = x + decay*tank.delay[3].get();
+ double xr = x + decay*tank.delay[1].get();
/* lh */
xl = tank.mlattice[0].process(xl, dediff1);
--- a/basics.h
+++ b/basics.h
@@ -49,14 +49,14 @@
#include "ladspa.h"
-typedef __int8_t int8;
-typedef __uint8_t uint8;
-typedef __int16_t int16;
-typedef __uint16_t uint16;
-typedef __int32_t int32;
-typedef __uint32_t uint32;
-typedef __int64_t int64;
-typedef __uint64_t uint64;
+typedef int8_t int8;
+typedef uint8_t uint8;
+typedef int16_t int16;
+typedef uint16_t uint16;
+typedef int32_t int32;
+typedef uint32_t uint32;
+typedef int64_t int64;
+typedef uint64_t uint64;
#define MIN_GAIN 1e-6 /* -120 dB */
/* smallest non-denormal 32 bit IEEE float is 1.18e-38 */
--- a/dsp/Delay.h
+++ b/dsp/Delay.h
@@ -101,11 +101,11 @@ class Delay
sample_t x2 = (*this) [n + 2];
/* sample_t (32bit) quicker than double here */
- register sample_t a =
+ sample_t a =
(3 * (x0 - x1) - x_1 + x2) * .5;
- register sample_t b =
+ sample_t b =
2 * x1 + x_1 - (5 * x0 + x2) * .5;
- register sample_t c =
+ sample_t c =
(x1 - x_1) * .5;
return x0 + (((a * f) + b) * f + c) * f;
--- a/dsp/IIR2.h
+++ b/dsp/IIR2.h
@@ -107,9 +107,9 @@ class IIR2
inline T process (T s)
{
- register int z = h;
+ int z = h;
- register T r = s * a[0];
+ T r = s * a[0];
r += a[1] * x[z];
r += b[1] * y[z];
@@ -128,9 +128,9 @@ class IIR2
inline T process_bp (T s)
{
- register int z = h;
+ int z = h;
- register T r = s * a[0];
+ T r = s * a[0];
r += b[1] * y[z];
@@ -151,9 +151,9 @@ class IIR2
* case */
inline T process_0_1()
{
- register int z = h;
+ int z = h;
- register T r = 0;
+ T r = 0;
r += a[1] * x[z];
r += b[1] * y[z];
@@ -172,9 +172,9 @@ class IIR2
inline T process_0_2()
{
- register int z = h;
+ int z = h;
- register T r = 0;
+ T r = 0;
r += b[1] * y[z];
@@ -192,9 +192,9 @@ class IIR2
inline T process_0_3()
{
- register int z = h;
+ int z = h;
- register T r = 0;
+ T r = 0;
r += b[1] * y[z];
--- a/dsp/Sine.h
+++ b/dsp/Sine.h
@@ -72,7 +72,7 @@ class Sine
/* advance and return 1 sample */
inline double get()
{
- register double s = b*y[z];
+ double s = b*y[z];
z ^= 1;
s -= y[z];
return y[z] = s;
@@ -101,7 +101,7 @@ class DampedSine
inline double get()
{
- register double s = b * y[z];
+ double s = b * y[z];
z ^= 1;
s -= d * y[z];
return y[z] = d * s;
--- a/dsp/v4f.h
+++ b/dsp/v4f.h
@@ -71,17 +71,53 @@ inline float v4f_sum (v4f_t v)
return f[0]+f[1]+f[2]+f[3];
}
-/* mapping a float to float function [e.g. sinf() e.a.] to a vector */
-typedef float (*f2f_fn) (float f);
+inline v4f_t v4f_map_builtin_sinf (v4f_t x)
+{
+ v4f_t y;
+ float * s = (float *) &x;
+ float * d = (float *) &y;
+ for (uint i = 0; i < 4; ++i)
+ d[i] = __builtin_sinf(s[i]);
+ return y;
+}
+
+inline v4f_t v4f_map_builtin_cosf (v4f_t x)
+{
+ v4f_t y;
+ float * s = (float *) &x;
+ float * d = (float *) &y;
+ for (uint i = 0; i < 4; ++i)
+ d[i] = __builtin_cosf(s[i]);
+ return y;
+}
+
+inline v4f_t v4f_map_exp10f (v4f_t x)
+{
+ v4f_t y;
+ float * s = (float *) &x;
+ float * d = (float *) &y;
+ for (uint i = 0; i < 4; ++i)
+ d[i] = exp10f(s[i]);
+ return y;
+}
+
+inline v4f_t v4f_map_sqrtf (v4f_t x)
+{
+ v4f_t y;
+ float * s = (float *) &x;
+ float * d = (float *) &y;
+ for (uint i = 0; i < 4; ++i)
+ d[i] = sqrtf(s[i]);
+ return y;
+}
-template <f2f_fn fn>
-v4f_t v4f_map (v4f_t x)
+inline v4f_t v4f_map_cosf (v4f_t x)
{
v4f_t y;
float * s = (float *) &x;
float * d = (float *) &y;
for (uint i = 0; i < 4; ++i)
- d[i] = fn(s[i]);
+ d[i] = cosf(s[i]);
return y;
}
@@ -155,17 +191,17 @@ class Sin4f
{
v4f_t *y = data();
v4f_t w = -v4f_pi * f;
- y[0] = v4f_map<__builtin_sinf> (w);
- y[1] = v4f_map<__builtin_sinf> (v4f_2 * w);
+ y[0] = v4f_map_builtin_sinf (w);
+ y[1] = v4f_map_builtin_sinf (v4f_2 * w);
/* b in above scalar implementation is y[2] in the flat data */
- y[2] = v4f_2 * v4f_map<__builtin_cosf> (w); /* b */
+ y[2] = v4f_2 * v4f_map_builtin_cosf (w); /* b */
z = 0;
}
inline v4f_t get()
{
v4f_t *y = data();
- register v4f_t s = y[2] * y[z];
+ v4f_t s = y[2] * y[z];
z ^= 1;
s -= y[z];
return y[z] = s;
--- a/dsp/v4f_IIR2.h
+++ b/dsp/v4f_IIR2.h
@@ -45,8 +45,8 @@ class RBJv4
{
v4f_t w = v4f_2pi * f;
- sin = v4f_map<__builtin_sinf> (w);
- cos = v4f_map<__builtin_cosf> (w);
+ sin = v4f_map_builtin_sinf (w);
+ cos = v4f_map_builtin_cosf (w);
alpha = sin / (v4f_2 * Q);
}
@@ -142,7 +142,7 @@ class IIR2v4
/* A = pow (10, gain / 40) */
v4f_t A = (v4f_t) {.025,.025,.025,.025};
A *= gain;
- A = v4f_map<exp10f> (A);
+ A = v4f_map_exp10f (A);
RBJv4 p (f, Q);
@@ -182,7 +182,7 @@ class IIR2v4
{
v4f_t *a = data(), *b = a + 2, *x = a + 5, *y = a + 7;
- register v4f_t r = s * a[0];
+ v4f_t r = s * a[0];
r += a[1] * x[h];
r += b[1] * y[h];
@@ -198,11 +198,11 @@ class IIR2v4
}
/* the production version with less pointer arithmetic in the prologue */
- inline v4f_t process (register v4f_t s)
+ inline v4f_t process (v4f_t s)
{
v4f_t *a = data();
- register v4f_t r = s * a[0];
+ v4f_t r = s * a[0];
r += a[1] * a[5+h]; /* a[1] * x[h] */
r += a[2+1] * a[7+h]; /* b[1] * y[h] */
@@ -223,7 +223,7 @@ class IIR2v4
{
v4f_t *a = data();
- register v4f_t r = s * a[0];
+ v4f_t r = s * a[0];
r += a[2+1] * a[7+h]; /* b[1] * y[h] */
@@ -323,10 +323,10 @@ class IIR2v4Bank
v4f_t acc = v4f_0;
- register uint h2 = h1 ^ 1;
+ uint h2 = h1 ^ 1;
for (uint i = 0; i < n; ++i, a += 7)
{
- register v4f_t r = s * a[0];
+ v4f_t r = s * a[0];
r += a[1] * x[h1];
r += a[2+1] * a[5+h1]; /* b[1] * y[h1] */
@@ -350,10 +350,10 @@ class IIR2v4Bank
v4f_t acc = v4f_0;
- register uint h2 = h1 ^ 1;
+ uint h2 = h1 ^ 1;
for (uint i = 0; i < N; ++i, a += 7)
{
- register v4f_t r;
+ v4f_t r;
r = a[1] * x[h1];
r += a[2+1] * a[5+h1]; /* b[1] * y[h1] */
@@ -377,10 +377,10 @@ class IIR2v4Bank
v4f_t acc = v4f_0;
- register uint h2 = h1 ^ 1;
+ uint h2 = h1 ^ 1;
for (uint i = 0; i < n; ++i, a += 7)
{
- register v4f_t r = s * a[0];
+ v4f_t r = s * a[0];
r += a[2+1] * a[5+h1]; /* b[1] * y[h1] */
@@ -429,7 +429,7 @@ class IIR2v4Bank
/* A = pow (10, gain / 40) */
v4f_t A = (v4f_t) {.025,.025,.025,.025};
A *= gain[i];
- A = v4f_map<exp10f> (A);
+ A = v4f_map_exp10f (A);
RBJv4 p (f[i], Q[i]);
@@ -549,9 +549,9 @@ class Resonator4fBank
{
v4f_t * a = state + i*Item;
f *= v4f_2pi;
- a[0] = v4f_map<__builtin_sinf> (f);
+ a[0] = v4f_map_builtin_sinf (f);
a[0] *= gain;
- a[5] = v4f_map<__builtin_cosf> (f);
+ a[5] = v4f_map_builtin_cosf (f);
set_r (i, r);
}
void set_r (int i, v4f_t r)
@@ -583,7 +583,7 @@ class Resonator4fBank
{
v4f_t *a = state + i*Item;
- register uint h2 = h1 ^ 1;
+ uint h2 = h1 ^ 1;
x = x * a[0]; /* x * a[0] */
x += a[1] * a[3+h1]; /* b[1] * y[h1] */
@@ -605,8 +605,8 @@ class Resonator4fBank
v4f_t s = (v4f_t) {x,x,x,x};
- register uint h2 = h1 ^ 1;
- register v4f_t r = s * a[0]; /* x * a[0] */
+ uint h2 = h1 ^ 1;
+ v4f_t r = s * a[0]; /* x * a[0] */
r += a[1] * a[3+h1]; /* b[1] * y[h1] */
r += a[2] * a[3+h2]; /* b[2] * y[h2] */
@@ -676,9 +676,9 @@ class MREqv4
{
v4f_t *a = data(), *s = a + 1;
- s[0] = -v4f_map<cosf>(v4f_2pi*f);
+ s[0] = -v4f_map_cosf(v4f_2pi*f);
a[0] = v4f_half*(gain - v4f_1);
- bw *= v4f(7,7,7,7)*f / v4f_map<sqrtf>(gain);
+ bw *= v4f(7,7,7,7)*f / v4f_map_sqrtf(gain);
s[1] = (v4f_1 - bw) / (v4f_1 + bw);
}
--
2.53.0