Skip to content

Commit ec629e6

Browse files
committed
refactor: begin applying upstream updates
This does compile, but the FIR EQ is still in-place but commented-out.
1 parent 8c8bd5a commit ec629e6

File tree

4 files changed

+46
-26
lines changed

4 files changed

+46
-26
lines changed

libjamesdsp/PrintfStdOutExtension.c

Lines changed: 26 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,34 @@ static stdOutHandler _printfStdOutHandlerPtr = 0;
55
static void* _printfStdOutHandlerUserPtr = 0;
66

77
int redirected_printf(const char * format, ...) {
8-
// Make formatted string.
9-
char* outstr = 0;
10-
va_list ap;
11-
va_start(ap, format);
12-
int result = vasprintf(&outstr, format, ap);
13-
va_end(ap);
14-
if(result < 0) // Error occurred and `outstr` undefined if result < 0.
15-
return result;
8+
// Make formatted string.
9+
char* outstr = 0;
10+
va_list ap;
11+
va_start(ap, format);
12+
int result = vasprintf(&outstr, format, ap);
13+
va_end(ap);
14+
if(result < 0) // Error occurred and `outstr` undefined if result < 0.
15+
return result;
1616

17-
if(_printfStdOutHandlerPtr != 0)
18-
{
19-
_printfStdOutHandlerPtr(outstr, _printfStdOutHandlerUserPtr);
20-
}
17+
if(_printfStdOutHandlerPtr != 0)
18+
{
19+
_printfStdOutHandlerPtr(outstr, _printfStdOutHandlerUserPtr);
20+
}
2121

22-
free(outstr);
23-
return result;
22+
free(outstr);
23+
return result;
24+
}
25+
26+
void __android_log_print(int severity, const char* tag, const char* msg) {
27+
char *s;
28+
if (asprintf(&s, "%s: %s", tag, msg) > 0 && s != 0)
29+
{
30+
if(_printfStdOutHandlerPtr != 0)
31+
{
32+
_printfStdOutHandlerPtr(s, _printfStdOutHandlerUserPtr);
33+
}
34+
free(s);
35+
}
2436
}
2537

2638
void setPrintfStdOutHandler(stdOutHandler funcPtr, void* userData)

libjamesdsp/libjamesdsp.pro

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ CONFIG += warn_off # Disable warnings for library
1212

1313
DEFINES += CUSTOM_CMD
1414
DEFINES += DEBUG # TODO remove?
15-
DEFINES += printf=redirected_printf
15+
16+
DEFINES += printf=redirected_printf ANDROID_LOG_INFO=0
1617

1718
BASEPATH = $$PWD/subtree/Main/libjamesdsp/jni/jamesdsp/jdsp/
1819

@@ -87,7 +88,6 @@ SOURCES += \
8788
$$BASEPATH/Effects/eel2/numericSys/solvopt.c \
8889
$$BASEPATH/Effects/eel2/s_str.c \
8990
$$BASEPATH/Effects/eel2/y.tab.c \
90-
$$BASEPATH/Effects/firEqualizer.c \
9191
$$BASEPATH/Effects/liveprogWrapper.c \
9292
$$BASEPATH/Effects/reverb.c \
9393
$$BASEPATH/Effects/stereoEnhancement.c \
@@ -103,7 +103,8 @@ SOURCES += \
103103
$$BASEPATH/jdspController.c \
104104
EELStdOutExtension.c \
105105
PrintfStdOutExtension.c \
106-
JdspImpResToolbox.c
106+
JdspImpResToolbox.c \
107+
subtree/Main/libjamesdsp/jni/jamesdsp/jdsp/Effects/multimodalEQ.c
107108

108109
unix {
109110
isEmpty(LIBDIR) {

src/audio/base/DspHost.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ void DspHost::updateFirEqualizer(DspConfig *config)
144144
param[i] = (double)std::stod(v[i]);
145145
}
146146

147-
FIREqualizerAxisInterpolation(cast(this->_dsp), interpolationMode, filterType, param, param + 15);
147+
// TODO FIREqualizerAxisInterpolation(cast(this->_dsp), interpolationMode, filterType, param, param + 15);
148148
}
149149

150150
void DspHost::updateVdc(DspConfig *config)
@@ -181,7 +181,7 @@ void DspHost::updateVdc(DspConfig *config)
181181
QTextStream in(&f);
182182
DDCStringParser(cast(this->_dsp), in.readAll().toLocal8Bit().data());
183183

184-
int ret = DDCEnable(cast(this->_dsp));
184+
int ret = DDCEnable(cast(this->_dsp), 1);
185185
if (ret <= 0)
186186
{
187187
util::error("Call to DDCEnable(this->_dsp) failed. Invalid DDC parameter?");
@@ -358,7 +358,7 @@ void DspHost::updateConvolver(DspConfig *config)
358358
util::debug("Impulse response loaded: channels=" + std::to_string(impInfo[0]) + ", frames=" + std::to_string(impInfo[1]));
359359

360360
Convolver1DDisable(cast(this->_dsp));
361-
success = Convolver1DLoadImpulseResponse(cast(this->_dsp), impulse, impInfo[0], impInfo[1]);
361+
success = Convolver1DLoadImpulseResponse(cast(this->_dsp), impulse, impInfo[0], impInfo[1], 1);
362362
}
363363

364364
delete[] impInfo;
@@ -398,7 +398,7 @@ void DspHost::updateGraphicEq(DspConfig *config)
398398
if(enabled)
399399
{
400400
ArbitraryResponseEqualizerStringParser(cast(this->_dsp), eq.toLocal8Bit().data());
401-
ArbitraryResponseEqualizerEnable(cast(this->_dsp));
401+
ArbitraryResponseEqualizerEnable(cast(this->_dsp), 1);
402402
}
403403
else
404404
ArbitraryResponseEqualizerDisable(cast(this->_dsp));
@@ -450,7 +450,7 @@ void DspHost::updateCrossfeed(DspConfig* config)
450450
}
451451

452452
if(enabled)
453-
CrossfeedEnable(cast(this->_dsp));
453+
CrossfeedEnable(cast(this->_dsp), 1);
454454
else
455455
CrossfeedDisable(cast(this->_dsp));
456456
}
@@ -510,7 +510,7 @@ bool DspHost::update(DspConfig *config, bool ignoreCache)
510510
break;
511511
case DspConfig::compression_enable:
512512
if(current.toBool())
513-
CompressorEnable(cast(this->_dsp));
513+
CompressorEnable(cast(this->_dsp), 1);
514514
else
515515
CompressorDisable(cast(this->_dsp));
516516
break;
@@ -593,10 +593,10 @@ bool DspHost::update(DspConfig *config, bool ignoreCache)
593593
}
594594
break;
595595
case DspConfig::tone_enable:
596-
if(current.toBool())
596+
/*if(current.toBool())
597597
FIREqualizerEnable(cast(this->_dsp));
598598
else
599-
FIREqualizerDisable(cast(this->_dsp));
599+
FIREqualizerDisable(cast(this->_dsp));*/ //TODO
600600
break;
601601
case DspConfig::tone_eq:
602602
case DspConfig::tone_filtertype:

src/audio/base/IDspElement.h

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,16 +24,23 @@ class IDspElement
2424
void setMessageHandler(DspHost::MessageHandlerFunc&& extraHandler)
2525
{
2626
_msgHandler = std::move(extraHandler);
27+
_msgHandlerReady = true;
2728
}
2829

2930
void callMessageHandler(DspHost::Message msg, std::any param)
3031
{
31-
_msgHandler(msg, param);
32+
if(_msgHandlerReady)
33+
_msgHandler(msg, param);
34+
else {
35+
// TODO fix this case
36+
// printf("IDspElement::callMessageHandler: dropped message of type '%d'\n", msg);
37+
}
3238
}
3339

3440
protected:
3541
DspHost* _host = nullptr;
3642
DspHost::MessageHandlerFunc _msgHandler;
43+
bool _msgHandlerReady = false;
3744

3845
};
3946

0 commit comments

Comments
 (0)