aboutsummaryrefslogtreecommitdiff
path: root/src/shadedvisual.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/shadedvisual.cpp')
-rw-r--r--src/shadedvisual.cpp205
1 files changed, 0 insertions, 205 deletions
diff --git a/src/shadedvisual.cpp b/src/shadedvisual.cpp
deleted file mode 100644
index 2dea3d419..000000000
--- a/src/shadedvisual.cpp
+++ /dev/null
@@ -1,205 +0,0 @@
-/***************************************************************************
- * Copyright (C) 2007 by Ilya Kotov *
- * forkotov02@hotmail.ru *
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * This program is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- * GNU General Public License for more details. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program; if not, write to the *
- * Free Software Foundation, Inc., *
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
- ***************************************************************************/
-
-#include <QTimer>
-#include <math.h>
-#include "skin.h"
-#include "mainvisual.h"
-#include "inlines.h"
-
-
-#include "shadedvisual.h"
-
-ShadedVisual::ShadedVisual(QWidget *parent)
- : Visual(parent)
-{
- setFixedSize(38,5);
- m_pixmap = QPixmap (38,5);
- m_skin = Skin::getPointer();
- m_timer = new QTimer(this);
- connect(m_timer, SIGNAL (timeout()), this, SLOT (timeout()));
- connect(m_skin, SIGNAL(skinChanged()), this, SLOT(updateSkin()));
- m_timer->setInterval(50);
- m_timer->start();
- clear();
-}
-
-
-ShadedVisual::~ShadedVisual()
-{}
-
-void ShadedVisual::add(Buffer *b, unsigned long w, int c, int p)
-{
- if (!m_timer->isActive ())
- return;
- long len = b->nbytes, cnt;
- short *l = 0, *r = 0;
-
- len /= c;
- len /= ( p / 8 );
- if ( len > 512 )
- len = 512;
- cnt = len;
-
- if ( c == 2 )
- {
- l = new short[len];
- r = new short[len];
-
- if ( p == 8 )
- stereo16_from_stereopcm8 ( l, r, b->data, cnt );
- else if ( p == 16 )
- stereo16_from_stereopcm16 ( l, r, ( short * ) b->data, cnt );
- }
- else if ( c == 1 )
- {
- l = new short[len];
-
- if ( p == 8 )
- mono16_from_monopcm8 ( l, b->data, cnt );
- else if ( p == 16 )
- mono16_from_monopcm16 ( l, ( short * ) b->data, cnt );
- }
- else
- len = 0;
-
- if (len)
- m_nodes.append (new VisualNode (l, r, len, w));
-}
-
-void ShadedVisual::clear()
-{
- while (!m_nodes.isEmpty())
- m_nodes.removeFirst();
- m_l = 0;
- m_r = 0;
- m_pixmap.fill(m_skin->getVisColor(0));
- update();
-};
-
-void ShadedVisual::timeout()
-{
- VisualNode *node = 0;
- m_pixmap.fill(m_skin->getVisColor(0));
-
- if ( /*playing &&*/ output())
- {
- //output()->mutex()->lock ();
- //long olat = output()->latency();
- //long owrt = output()->written();
- //output()->mutex()->unlock();
-
- //long synctime = owrt < olat ? 0 : owrt - olat;
-
- mutex()->lock ();
- VisualNode *prev = 0;
- while ((!m_nodes.isEmpty()))
- {
- node = m_nodes.takeFirst();
- /*if ( node->offset > synctime )
- break;*/
-
- if (prev)
- delete prev;
- prev = node;
- }
- mutex()->unlock();
- node = prev;
- }
-
- if (!node)
- return;
- process (node);
- delete node;
- QPainter p(&m_pixmap);
- draw (&p);
- update();
-}
-
-void ShadedVisual::process (VisualNode *node)
-{
- if (!node)
- return;
-
- int step = (node->length << 8)/74;
- int pos = 0;
- int l = 0;
- int r = 0;
- int j_l = 0, j_r = 0;
-
- for (int i = 0; i < 75; ++i)
- {
- pos += step;
-
- if (node->left)
- {
- j_l = abs((node->left[pos >> 8] >> 12));
-
- if (j_l > 15)
- j_l = 15;
- l = qMax(l, j_l);
- }
- if (node->right)
- {
- j_r = abs((node->right[pos >> 8] >> 12));
- if (j_r > 15)
- j_r = 15;
- r = qMax(r, j_r);
- }
- }
- m_l -= 0.5;
- m_l = m_l > l ? m_l : l;
- m_r -= 0.5;
- m_r = m_r > r ? m_r : r;
-}
-
-void ShadedVisual::draw (QPainter *p)
-{
- for (int i = 0; i < m_l; ++i)
- {
- p->fillRect (i*3, 0, 3, 2, QBrush(m_skin->getVisColor (17-i)));
- }
- for (int i = 0; i < m_r; ++i)
- {
- p->fillRect (i*3, 3, 3, 2, QBrush(m_skin->getVisColor (17-i)));
- }
-}
-
-void ShadedVisual::paintEvent (QPaintEvent *)
-{
- QPainter painter (this);
- painter.drawPixmap (0,0,m_pixmap);
-}
-
-void ShadedVisual::hideEvent (QHideEvent *)
-{
- m_timer->stop();
-}
-
-void ShadedVisual::showEvent (QShowEvent *)
-{
- m_timer->start();
-}
-
-void ShadedVisual::updateSkin()
-{
- clear();
-}
-