亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? equalizercanvasview.cpp

?? Amarok是一款在LINUX或其他類UNIX操作系統中運行的音頻播放器軟件。 經過兩年開發后
?? CPP
字號:
/* *   Copyright (C) 2005 by Ian Monroe *   Released under GPL 2 or later, see COPYING */#include "equalizercanvasview.h"#include <qlabel.h>#include <qcanvas.h>#include <qpen.h>#include <dcopclient.h>#include <kapplication.h>#include <kdebug.h>#include <klocale.h>#include <kmessagebox.h>EqualizerCanvasView::EqualizerCanvasView(QWidget *parent = 0, const char *name = 0)    : QCanvasView(parent, name){    m_pen.setWidth(5);    m_circleList = new QPtrList<EqualizerCircle>();}//called after setCanvasvoidEqualizerCanvasView::init(){//     QCanvasLine* line = new QCanvasLine(this->canvas());//     line->setPoints(0,100,400,100);//     line->setPen(QPen(m_pen));//     line->setBrush(QBrush(Qt::black));    QCanvasLine* lineLeft = makeLine(QPoint(0,canvas()->height()/2)                ,QPoint(canvas()->width()/2,canvas()->height()/2));    QCanvasLine* lineRight= makeLine(QPoint(canvas()->width()/2,canvas()->height()/2)                ,QPoint(canvas()->width(),canvas()->height()/2));    EqualizerCircle* circleMid = new EqualizerCircle(canvas()->width()/2              ,canvas()->height()/2              ,canvas()              ,lineLeft              ,lineRight              ,m_circleList);    EqualizerCircle* circleLeft = new EqualizerCircle(0,100,this->canvas(),NULL,lineLeft,m_circleList);    EqualizerCircle* circleRight =  new EqualizerCircle(400,100,this->canvas(),lineRight,NULL,m_circleList);    circleLeft->show();    circleRight->show();    circleMid->show();//    line->show();    this->canvas()->update();}voidEqualizerCanvasView::contentsMousePressEvent(QMouseEvent *event){    QCanvasItemList items = canvas()->collisions(event->pos());    if (items.empty())        m_selectedItem = 0;    else        m_selectedItem = *(items.begin());}voidEqualizerCanvasView::contentsMouseDoubleClickEvent(QMouseEvent *event){    if (event->button() == LeftButton && m_selectedItem            && m_selectedItem->rtti() == QCanvasLine::RTTI)    {        QCanvasLine* line = (QCanvasLine*) m_selectedItem;        int y = getY(event->x());        EqualizerCircle* circle = new EqualizerCircle(event->x(), y              ,canvas()              ,makeLine(line->startPoint(),QPoint(event->x(),event->y()))              ,makeLine(QPoint(event->x(),event->y()),line->endPoint())              ,m_circleList);        //kdDebug() << event->x() << 'x' << y << " cursor at " << event->x() << 'x' << event->y() << endl;        circle->show();        canvas()->update();        m_selectedItem=0;        delete line;        canvas()->update();    }}voidEqualizerCanvasView::contentsMouseMoveEvent(QMouseEvent *event){    if ((event->state() & LeftButton) && m_selectedItem ) {      //  kdDebug() << "dragging " << m_selectedItem->rtti() << endl;        if (m_selectedItem->rtti() == QCanvasEllipse::RTTI)        {            EqualizerCircle* circle = (EqualizerCircle*) m_selectedItem;            circle->setLocation(event->pos());      //      kdDebug() << "dragged" <<endl;        }    }}voidEqualizerCanvasView::contentsMouseReleaseEvent(QMouseEvent */*event*/){    if (m_selectedItem && m_selectedItem->rtti() == QCanvasEllipse::RTTI)    {        emit eqChanged();    }}/** * m =(y1-y2)/(x1-x2) * b = m*x1 - y1 * y = m*xCoord -b */intEqualizerCanvasView::getY(int xCoord){//     int y1 = line->startPoint().y();//     int y2 = line->endPoint().y();//     int x1 = line->startPoint().x();//     int x2 = line->endPoint().x();//     double slope = double(y1-y2) / double(x1-x2);//     kdDebug() << slope << "= (" << y1 << " - " << y2 << ")/(" << x1  << " - " << x2 << ')' << endl;//     double b = slope*double(x1 - y1);//     kdDebug() << b << " = " << slope <<" * "<< x1 << " - " << y1 << endl;//     double y = double(xCoord)*slope - b;//     kdDebug() << y << " = " << xCoord << '*' << slope << " - " << b << endl;    //QPointArray* yAxis = new QPointArray(canvas->height());    //yAxis->makeEllipse(xCoord, canvas()->height()/2,1,canvas->height());    //canvas()->collisions(yAxis,0,false);    //delete yAxis;    QMemArray<int> collidedPoints(20);    unsigned int collisionNum = 0;    for(int i=0; i<canvas()->height();i++)    {        QCanvasItemList list = canvas()->collisions(QPoint(xCoord,i));        if( ! list.isEmpty())        {            if(collidedPoints.size() <= collisionNum)                collidedPoints.resize(collidedPoints.size()+100);//for the steep slops            collidedPoints[collisionNum] = i;            collisionNum++;        }    }    collisionNum--;    return collidedPoints[collisionNum] - collisionNum/2;}QCanvasLine*EqualizerCanvasView::makeLine(QPoint startPoint, QPoint endPoint){    QCanvasLine* line = new QCanvasLine(canvas());    line->setPoints(startPoint.x(),                   startPoint.y(),                   endPoint.x(),                   endPoint.y());    line->setZ(-50);    line->setPen(QPen(m_pen));    line->show();    return line;}QValueList<int>EqualizerCanvasView::currentSettings(){    int step = canvas()->width()/10;    int i;    QValueList<int> ret;    ret << (int)(m_circleList->first()->y() - 100)*-1;    for(i=1; i<9; i++)        ret << (getY(i*step) - 100)*-1;    ret << (int)(m_circleList->last()->y() - 100)*-1;//    kdDebug() << "sending " << ret << endl;    return ret;}////////////////////////EqualizerCircle//////////////////////EqualizerCircle::EqualizerCircle(int x, int y, QCanvas *canvas, QCanvasLine* line1, QCanvasLine* line2,QPtrList<EqualizerCircle>* circleList ): QCanvasEllipse(15, 15, canvas){    m_line1 = line1;    m_line2 = line2;    setBrush(QBrush(Qt::blue));    move(x,y);    m_circleList = circleList;    EqualizerCircle* it;    int index = -1;    bool inserted = false;    for ( it = m_circleList->first(); it; it = m_circleList->next() )    {        if(it->x() > x)        {            index = m_circleList->find(it);            //if(index != 0)            //{                m_circleList->insert(index,this);                inserted = true;            //}            break;        }    }    if( !inserted )        m_circleList->append(this);    //clean up the loose pointer for the line that was split    unsigned int circleIndex = m_circleList->find(this);    if(circleIndex > 0)        m_circleList->at(circleIndex-1)->setLine(RIGHT,m_line1);    if(circleIndex < m_circleList->count()-1)         m_circleList->at(circleIndex+1)->setLine(LEFT,m_line2);}void EqualizerCircle::setLocation(const QPoint &newLocation){    unsigned int circleIndex = m_circleList->find(this);    double xMin, xMax;    QPoint correctedLoc(newLocation);    if(m_line1 == 0 || m_line2 == 0)    {//if the line is on the edges of the board, make it only move vertically        correctedLoc.setX( (int) x());    }    else    {        xMin = 0; xMax = canvas()->width();        if(circleIndex > 0)        {        // kdDebug() << "circleIndex " << circleIndex << endl;            xMin = m_circleList->at(circleIndex - 1)->x();        }        if(circleIndex < m_circleList->count()-1)        {            //kdDebug() << "circleIndex " << circleIndex << " count " << m_circleList->count() << endl;            xMax = m_circleList->at(circleIndex + 1)->x();        }        if(newLocation.x() < xMin)        {            //kdDebug() << "set " << newLocation.x() << " to xMin " << xMin << endl;            correctedLoc.setX( (int) (xMin + 1.0) );        }        else if (newLocation.x() > xMax)        {        //kdDebug() << "set " << newLocation.x() << " to xMax " << xMax << endl;            correctedLoc.setX( (int) (xMax - 1.0) );        }    }    if(newLocation.y() > canvas()->height())        correctedLoc.setY(canvas()->height());    else if (newLocation.y() < 0)        correctedLoc.setY(0);    move(correctedLoc.x(), correctedLoc.y());    if (m_line1) //account for circles on the edge        m_line1->setPoints( m_line1->startPoint().x()                       ,m_line1->startPoint().y()                       ,correctedLoc.x()                       ,correctedLoc.y());    if(m_line2)        m_line2->setPoints(correctedLoc.x()                       , correctedLoc.y()                       , m_line2->endPoint().x()                       , m_line2->endPoint().y());    canvas()->update();}void EqualizerCircle::setLine(WhichLine lineNum, QCanvasLine* line){    if(lineNum == LEFT)        m_line1 = line;    else        m_line2 = line;}void CallAmarok::updateEq(){        QByteArray data;        QDataStream arg(data, IO_WriteOnly);        arg << m_preampSlider->value() *-1;        QValueList<int> cs = m_canvasView->currentSettings();        QValueList<int>::iterator it;        for ( it = cs.begin(); it != cs.end(); ++it )            arg << (*it);        KApplication::dcopClient()->send("amarok", "player",            "setEqualizer(int,int,int,int,int,int,int,int,int,int,int)"            , data);}#include "equalizercanvasview.moc"

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩女同互慰一区二区| 日韩片之四级片| 国产乱码精品一区二区三区忘忧草| 国产精品午夜电影| 国产欧美日韩精品一区| 欧美国产97人人爽人人喊| 日本一区二区三区高清不卡| 久久久久久久久99精品| 国产视频在线观看一区二区三区 | 久久机这里只有精品| 日韩影院在线观看| 老司机精品视频一区二区三区| 另类的小说在线视频另类成人小视频在线 | 国产精品国产三级国产专播品爱网| 欧美韩国日本不卡| 亚洲精品欧美综合四区| 五月天视频一区| 国内成+人亚洲+欧美+综合在线| 国内精品伊人久久久久av影院| 懂色av一区二区在线播放| 在线免费观看日韩欧美| 日韩一区二区麻豆国产| 欧美国产丝袜视频| 午夜精品久久久久久久久久| 久久精工是国产品牌吗| 91在线视频观看| 欧美乱妇一区二区三区不卡视频| 精品久久久久久久一区二区蜜臀| 国产午夜亚洲精品理论片色戒| 亚洲精选视频在线| 九九久久精品视频| 91视视频在线观看入口直接观看www | 不卡区在线中文字幕| 精品污污网站免费看| 国产午夜亚洲精品不卡| 亚洲午夜电影在线观看| 国产不卡免费视频| 欧美日本在线一区| 中文字幕亚洲在| 激情图区综合网| 欧美午夜在线一二页| 欧美国产一区二区在线观看| 日本伊人色综合网| 99视频精品全部免费在线| 日韩欧美一区二区在线视频| 亚洲免费视频中文字幕| 国产精品538一区二区在线| 欧美乱妇一区二区三区不卡视频| 国产精品传媒在线| 狠狠色狠狠色综合系列| 91麻豆精品国产自产在线观看一区| 中文字幕一区免费在线观看| 国产乱人伦偷精品视频不卡 | 精品国产一区a| 亚洲va欧美va国产va天堂影院| 成人激情开心网| 久久亚洲综合色一区二区三区| 亚洲成人777| 91视频你懂的| 国产日产欧美一区| 国内精品免费在线观看| 日韩女优av电影在线观看| 亚洲国产成人tv| 色偷偷88欧美精品久久久| 国产精品久久久久久福利一牛影视 | av动漫一区二区| 国产蜜臀97一区二区三区| 九一久久久久久| 日韩一区二区在线看| 视频在线观看国产精品| 欧美羞羞免费网站| 亚洲香肠在线观看| 在线观看三级视频欧美| 亚洲一区在线看| 欧美亚洲动漫精品| 五月激情综合色| 91精品婷婷国产综合久久竹菊| 石原莉奈在线亚洲二区| 91精品国产综合久久久蜜臀粉嫩 | 91丨porny丨国产入口| 亚洲成人免费视| 在线视频国内自拍亚洲视频| 欧美精品一区二区三区蜜臀| 99久久婷婷国产综合精品| 欧美激情一区二区在线| 成人性视频网站| 亚洲欧洲日韩av| 91免费精品国自产拍在线不卡| 樱花草国产18久久久久| 欧美精品777| 韩国精品久久久| 国产精品美女久久久久久久网站| 99麻豆久久久国产精品免费 | 国产精品亚洲午夜一区二区三区| 久久免费的精品国产v∧| 国产91在线|亚洲| 亚洲欧美国产毛片在线| 在线成人高清不卡| 国产美女一区二区三区| 夜色激情一区二区| 日韩免费电影网站| 成人动漫一区二区在线| 午夜视频在线观看一区二区三区| 日韩一区国产二区欧美三区| 大桥未久av一区二区三区中文| 亚洲精品综合在线| 精品国产百合女同互慰| 99re热这里只有精品免费视频| 日日夜夜精品视频免费| 国产日本亚洲高清| 91精品国产全国免费观看 | 一区二区三区日韩| 精品裸体舞一区二区三区| a4yy欧美一区二区三区| 美腿丝袜在线亚洲一区| 亚洲啪啪综合av一区二区三区| 日韩美女视频在线| 欧洲国产伦久久久久久久| 精品一区二区三区蜜桃| 亚洲第一av色| 国产精品国产自产拍高清av王其| 日韩视频一区二区三区在线播放| 成人免费福利片| 久久不见久久见免费视频7| 亚洲一区在线视频观看| 欧美激情在线看| 久久伊人中文字幕| 在线播放91灌醉迷j高跟美女| fc2成人免费人成在线观看播放| 久久草av在线| 日韩av不卡一区二区| 亚洲免费观看高清完整版在线观看熊| 2023国产精华国产精品| 91精品在线免费观看| 欧美在线一二三四区| 91在线视频网址| 99精品在线观看视频| 国产成人日日夜夜| 国产成人久久精品77777最新版本| 日韩av不卡一区二区| 午夜精品福利在线| 亚洲国产精品一区二区www| 亚洲精品视频自拍| 亚洲精品中文字幕在线观看| 亚洲欧美日韩综合aⅴ视频| 国产精品美女久久久久久2018| 欧美成人三级电影在线| 日韩免费高清视频| 日韩免费在线观看| 久久一夜天堂av一区二区三区| 精品国产在天天线2019| 日韩一区二区电影网| 日韩一区二区麻豆国产| 日韩欧美一区电影| 久久影院午夜片一区| 中文字幕乱码亚洲精品一区| 国产欧美日韩不卡| 国产精品国产三级国产普通话三级| 国产午夜亚洲精品午夜鲁丝片 | 视频在线观看一区二区三区| 午夜欧美大尺度福利影院在线看 | 欧美国产精品一区二区三区| 欧美激情一区在线| 亚洲裸体在线观看| 亚洲国产日韩精品| 麻豆91在线播放| 国产盗摄一区二区三区| 91蜜桃免费观看视频| 欧美日韩精品欧美日韩精品一| 欧美高清激情brazzers| 精品日韩在线观看| 中文字幕一区免费在线观看| 亚洲一区二区三区四区的| 日本va欧美va精品发布| 狠狠色综合日日| 在线观看一区不卡| 欧美白人最猛性xxxxx69交| 中文字幕成人网| 亚洲高清一区二区三区| 国产麻豆91精品| 日本高清免费不卡视频| 欧美videofree性高清杂交| 中日韩av电影| 视频一区在线播放| 国产成人精品亚洲日本在线桃色| 91美女视频网站| 日韩精品在线看片z| 国产精品福利影院| 日本伊人色综合网| 91丨国产丨九色丨pron| 欧美一区二区精品在线| 中文字幕中文在线不卡住| 日韩高清不卡在线| 色综合婷婷久久| 久久九九国产精品| 日韩综合一区二区| 91福利在线观看| 国产色91在线| 日本不卡视频在线| 91黄色免费看|