]> git.sesse.net Git - kdenlive/blob - src/audiosignal.cpp
f35db088e28ba5debd76ed3e89ef033d0e96bcdc
[kdenlive] / src / audiosignal.cpp
1 #include "audiosignal.h"
2
3 #include <QVBoxLayout>
4 #include <QLabel>
5 #include <QPainter>
6 #include <QDebug>
7 #include <QList>
8
9
10 AudioSignal::AudioSignal(QWidget *parent):QWidget(parent)
11 {
12         //QVBoxLayout *vbox=new QVBoxLayout(this);
13         //label=new QLabel();
14         //vbox->addWidget(label);
15         setMaximumHeight(12);
16         col << Qt::green <<  Qt::green << Qt::green << Qt::green << Qt::green << Qt::green << Qt::green << Qt::green << Qt::green << Qt::green ;
17         col << Qt::yellow <<  Qt::yellow << Qt::yellow << Qt::yellow << Qt::yellow  ;
18         col << Qt::darkYellow << Qt::darkYellow << Qt::darkYellow;
19         col << Qt::red << Qt::red;
20 }
21
22
23 void AudioSignal::showAudio(QByteArray arr)
24 {
25         channels=arr;
26         update();
27 }
28 void AudioSignal::paintEvent(QPaintEvent* e)
29 {
30     QPainter p(this);
31     //p.begin();
32         //p.fillRect(0,0,(unsigned char)channels[0]*width()/255,height()/2,QBrush(Qt::SolidPattern));
33         //p.fillRect(0,height()/2,(unsigned char)channels[1]*width()/255,height()/2,QBrush(Qt::SolidPattern));
34         int numchan=channels.size();
35         for (int i=0;i<numchan;i++){
36                 int maxx=(unsigned char)channels[i]*width()/255;
37                 int xdelta=width()/20;
38                 int y1=height()*i/numchan;
39                 int _h=height()/numchan-1;
40                 for (int x=0;x<20;x++){
41                                 if (maxx>0){
42                                 p.fillRect(x*xdelta,y1,maxx>xdelta?xdelta-1:maxx-1,_h,QBrush(col.at(x),Qt::SolidPattern));
43                                 maxx-=xdelta;
44                                 }
45                 }
46         }
47     p.end();
48 }
49 #include "audiosignal.moc"