From b051549f6d91fd08206ba09b47ad25c7fd86dfce Mon Sep 17 00:00:00 2001 From: Bob van Loosen Date: Tue, 2 Apr 2013 23:34:00 +0200 Subject: [PATCH] added: make peakhold direction configurable --- src/bitvis/bitvis.cpp | 34 ++++++++++++++++++++++++++-------- src/bitvis/bitvis.h | 3 ++- 2 files changed, 28 insertions(+), 9 deletions(-) diff --git a/src/bitvis/bitvis.cpp b/src/bitvis/bitvis.cpp index 38d0cdf..fc20757 100644 --- a/src/bitvis/bitvis.cpp +++ b/src/bitvis/bitvis.cpp @@ -64,6 +64,7 @@ CBitVis::CBitVis(int argc, char *argv[]) m_hasaudio = false; m_scopesample = 0.0; m_scopesamples = 0; + m_peakup = false; m_fontheight = 0; InitChars(); @@ -75,7 +76,7 @@ CBitVis::CBitVis(int argc, char *argv[]) m_volumetime = GetTimeUs(); m_displayvolume = 0; - const char* flags = "f:d:p:a:m:o:"; + const char* flags = "f:d:p:a:m:o:u"; int c; while ((c = getopt(argc, argv, flags)) != -1) { @@ -132,6 +133,10 @@ CBitVis::CBitVis(int argc, char *argv[]) m_mpdport = port; } + else if (c == 'u') //peak hold goes up + { + m_peakup = true; + } } if (!m_address) @@ -627,18 +632,31 @@ void CBitVis::SendData(int64_t time) { pixel |= 3; } - - if (time - currpeak.time > 500000 && Round32(currpeak.value) > 0) - { - currpeak.value += 0.01f; - if (currpeak.value >= nrlines) - currpeak.value = 0.0f; - } } line[x] = pixel; } data.SetData(line, sizeof(line), true); } + + for (int i = 0; i < m_nrcolumns; i++) + { + peak& currpeak = m_peakholds[i]; + if (time - currpeak.time > 500000 && Round32(currpeak.value) > 0) + { + if (m_peakup) + { + currpeak.value += 0.5f; + if (currpeak.value >= nrlines) + currpeak.value = 0.0f; + } + else + { + currpeak.value -= 0.5f; + if (currpeak.value <= 0.0f) + currpeak.value = 0.0f; + } + } + } } uint8_t text[m_nrcolumns / 4 * m_fontheight]; diff --git a/src/bitvis/bitvis.h b/src/bitvis/bitvis.h index 3406aa5..c30125e 100644 --- a/src/bitvis/bitvis.h +++ b/src/bitvis/bitvis.h @@ -94,7 +94,8 @@ class CBitVis : public CThread float value; }; - peak* m_peakholds; + peak* m_peakholds; + bool m_peakup; CMutex m_socketlock; CTcpClientSocket m_socket;