From adacb33bf4eadcd49a744177bf3f059e7b2f2f52 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Mon, 22 Feb 2010 21:24:34 +0000 Subject: Merge with upstream r2. git-svn-id: http://svn.drobilla.net/lad/trunk/mda-lv2@2471 a436a847-0d15-0410-975c-d299462d15a1 --- src/mdaSpecMeterGUI.cpp | 147 +++++++++++++++++++++--------------------------- 1 file changed, 65 insertions(+), 82 deletions(-) (limited to 'src/mdaSpecMeterGUI.cpp') diff --git a/src/mdaSpecMeterGUI.cpp b/src/mdaSpecMeterGUI.cpp index 7788ec1..dcee2a0 100644 --- a/src/mdaSpecMeterGUI.cpp +++ b/src/mdaSpecMeterGUI.cpp @@ -54,23 +54,29 @@ mdaSpecMeterGUI::close() void mdaSpecMeterGUI::idle() { - long xnow = ((mdaSpecMeter *) effect)->counter; - if (xnow != xtimer) { + LvzInt32 xnow = ((mdaSpecMeter *)effect)->counter; + if(xnow != xtimer) + { xtimer = xnow; - if (draw) { // copy data from effect (this can't be the best way!) - draw->Lpeak = ((mdaSpecMeter *) effect)->Lpeak; - draw->Lmin = ((mdaSpecMeter *) effect)->Lmin; - draw->Lrms = ((mdaSpecMeter *) effect)->Lrms; - draw->Rpeak = ((mdaSpecMeter *) effect)->Rpeak; - draw->Rmin = ((mdaSpecMeter *) effect)->Rmin; - draw->Rrms = ((mdaSpecMeter *) effect)->Rrms; - draw->Corr = ((mdaSpecMeter *) effect)->Corr; - for (long i = 0; i < 13; i++) { - draw->band[0][i] = ((mdaSpecMeter *) effect)->band[0][i]; - draw->band[1][i] = ((mdaSpecMeter *) effect)->band[1][i]; + //if(draw) temp = draw->temp; + //if(label) label->setLabel(xtimer); + + if(draw) //copy data from effect (this can't be the best way!) + { + draw->Lpeak = ((mdaSpecMeter *)effect)->Lpeak; + draw->Lmin = ((mdaSpecMeter *)effect)->Lmin; + draw->Lrms = ((mdaSpecMeter *)effect)->Lrms; + draw->Rpeak = ((mdaSpecMeter *)effect)->Rpeak; + draw->Rmin = ((mdaSpecMeter *)effect)->Rmin; + draw->Rrms = ((mdaSpecMeter *)effect)->Rrms; + draw->Corr = ((mdaSpecMeter *)effect)->Corr; + for(LvzInt32 i=0; i<13; i++) + { + draw->band[0][i] = ((mdaSpecMeter *)effect)->band[0][i]; + draw->band[1][i] = ((mdaSpecMeter *)effect)->band[1][i]; } - draw->setDirty(true); // trigger redraw + draw->setDirty(true); //trigger redraw } } @@ -78,131 +84,108 @@ mdaSpecMeterGUI::idle() } -CDraw::CDraw(CRect & size, float value, CBitmap * background): - CControl(size) +CDraw::CDraw(CRect & size, float value, CBitmap * background) : CControl(size) { bitmap = background; Lpeak = Lmin = Lrms = Rpeak = Rmin = Rrms = Corr = 0.0f; - for (long i = 0; i < 16; i++) + for (LvzInt32 i = 0; i < 16; i++) band[0][i] = band[1][i] = 0.0f; setValue(value); } + CDraw::~CDraw() { } + void -CDraw::draw(CDrawContext * pContext) +CDraw::draw(CDrawContext *pContext) { - long r, p; + LvzInt32 r, p; CRect block; CRect rect(0, 0, bitmap->getWidth(), bitmap->getHeight()); bitmap->draw(pContext, rect); - /* - pContext->setFillColor(kGreenCColor); - - p = x2pix(Lmin); - block(p - 3, 10, p - 1, 18); - pContext->fillRect(block); + pContext->setFillColor(kGreenCColor); - p = x2pix(Rmin); - block(p - 3, 18, p - 1, 26); - pContext->fillRect(block); - */ + p = x2pix(Lmin); + block(p - 3, 10, p - 1, 18); + pContext->fillRect(block); + p = x2pix(Rmin); + block(p - 3, 18, p - 1, 26); + pContext->fillRect(block); + */ pContext->setFillColor(kBlackCColor); - r = x22pix(Lrms); - if (r > 454) - r = 454; - - p = x2pix(Lpeak); - if (p > 454) - p = 454; - - block = CRect(r - 1, 10, p - 1, 18); + r = x22pix(Lrms); if(r > 454) r = 454; + p = x2pix(Lpeak); if(p > 454) p = 454; + block(r - 1, 10, p - 1, 18); pContext->fillRect(block); + block(p - 1, 10, 478, 18); + if(p < 454) pContext->fillRect(block); - block = CRect(p - 1, 10, 478, 18); - if (p < 454) - pContext->fillRect(block); - - r = x22pix(Rrms); - if (r > 454) - r = 454; - - p = x2pix(Rpeak); - if (p > 454) - p = 454; - - block = CRect(r - 1, 18, p - 1, 26); + r = x22pix(Rrms); if(r > 454) r = 454; + p = x2pix(Rpeak); if(p > 454) p = 454; + block(r - 1, 18, p - 1, 26); pContext->fillRect(block); - - block = CRect(p - 1, 18, 478, 26); - if (p < 454) - pContext->fillRect(block); + block(p - 1, 18, 478, 26); + if(p < 454) pContext->fillRect(block); //block(x2pix(Rpeak), 18, 478, 26); //buf->fillRect(block); - block = CRect(235, 42, 244, 134 - (long)(90 * Corr)); + block(235, 42, 244, 134 - (LvzInt32)(90 * Corr)); pContext->fillRect(block); - long i, x1 = 2, x2 = 256; // octave bands - for (i = 0; i < 13; i++) { - float dB = band[0][i]; - block = CRect(x1, 42, x1 + 18, 49 - (long)(20.0 * log(dB))); + LvzInt32 i, x1=2, x2=256; //octave bands + float dB; + for(i=0; i<13; i++) + { + dB = band[0][i]; + block(x1, 42, x1+18, 49 - (LvzInt32)(20.0 * log(dB))); pContext->fillRect(block); x1 += 17; dB = band[1][i]; - block = CRect(x2, 42, x2 + 18, 49 - (long)(20.0 * log(dB))); + block(x2, 42, x2+18, 49 - (LvzInt32)(20.0 * log(dB))); pContext->fillRect(block); x2 += 17; } } -long +LvzInt32 CDraw::x2pix(float x) { float dB = x; - long p = 478; + LvzInt32 p = 478; - if (x > 0.00000005f) - dB = 8.6858896f * (float)log(x); + if(x > 0.00000005f) dB = 8.6858896f * (float)log(x); else dB = -146.0f; + if(dB < -20.0) + p = 293 + (LvzInt32)(2.0f * dB); else - dB = -146.0f; - - if (dB < -20.0) - p = 293 + (long)(2.0f * dB); - else - p = 453 + (long)(10.0f * dB); + p = 453 + (LvzInt32)(10.0f * dB); return p; } -long -CDraw::x22pix(float x) // power version for squared summed +LvzInt32 +CDraw::x22pix(float x) //power version for squared summed { float dB = x; - long p = 478; + LvzInt32 p = 478; - if (x > 0.00000005f) - dB = 4.3429448f * (float)log(x); + if(x > 0.00000005f) dB = 4.3429448f * (float)log(x); else dB = -146.0f; + if(dB < -20.0) + p = 293 + (LvzInt32)(2.0f * dB); else - dB = -146.0f; - - if (dB < -20.0) - p = 293 + (long)(2.0f * dB); - else if (dB < 0.0f) - p = 453 + (long)(10.0f * dB); + if(dB < 0.0f) p = 453 + (LvzInt32)(10.0f * dB); return p; } -- cgit v1.2.1