diff --git a/src/engine/engine.h b/src/engine/engine.h index 7c8c9097..1aa2b0c5 100644 --- a/src/engine/engine.h +++ b/src/engine/engine.h @@ -190,6 +190,7 @@ class DivEngine { bool forceMono; bool cmdStreamEnabled; bool softLocked; + int softLockCount; int ticks, curRow, curOrder, remainingLoops, nextSpeed; double divider; int cycles; @@ -681,6 +682,8 @@ class DivEngine { halted(false), forceMono(false), cmdStreamEnabled(false), + softLocked(0), + softLockCount(0), ticks(0), curRow(0), curOrder(0), diff --git a/src/engine/playback.cpp b/src/engine/playback.cpp index 5443faa5..1d7f2417 100644 --- a/src/engine/playback.cpp +++ b/src/engine/playback.cpp @@ -1410,6 +1410,7 @@ void DivEngine::nextBuf(float** in, float** out, int inChans, int outChans, unsi if (softLocked) { if (!isBusy.try_lock()) { + logV("audio is soft-locked (%d)\n",softLockCount++); return; } } else { diff --git a/src/log.cpp b/src/log.cpp index c8dd030e..1f77925b 100644 --- a/src/log.cpp +++ b/src/log.cpp @@ -17,10 +17,28 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ +// TODO: improve these routines to allow logging to memory for eventual log window! + #include "ta-log.h" int logLevel=LOGLEVEL_INFO; +int logV(const char* format, ...) { + va_list va; + int ret; + if (logLevel