view widgets/LabelForTimeStrechFilter.cpp @ 282:d9319859a4cf tip

(none)
author benoitrigolleau
date Fri, 31 Oct 2008 11:00:24 +0000
parents a9af42a93073
children
line wrap: on
line source
#include "LabelForTimeStrechFilter.h"
#include "../sv/main/MainWindow.h"
#include <cmath>


LabelForTimeStrechFilter::LabelForTimeStrechFilter(QWidget *parent){
	m_audioSourceInfoModel=0;
	MainWindow *mainW = MainWindow::instance();
	connect(mainW, SIGNAL(addAudioSourceInfo(AudioSourceInfoModel *)),
		this, SLOT(audioSourceInfoAdded(AudioSourceInfoModel *)));

}
   
LabelForTimeStrechFilter::~LabelForTimeStrechFilter(){

}

void LabelForTimeStrechFilter::setType(int type){
	m_type = type;
}

void LabelForTimeStrechFilter::setValue(int value){
	float val = (float)value;
	QString text;

	if(m_type==0){
		text = "N/A";
		if(m_audioSourceInfoModel!=0){
			QStringList *list = m_audioSourceInfoModel->getInfo("bpm");
			if(list!=0 && list->size()>0){
				float tempo = list->at(0).toFloat();
				val = tempo*(val/100.0);
				text= QString::number((int)(val+0.5));
			}
		}
	}
	else if(m_type==1){
		val = (log(val/100.0)/log(2.0))/0.08333333;
		text = QString::number(val);
	}

	QLabel::setText(text);
	m_oldValue = value;
}

void LabelForTimeStrechFilter::audioSourceInfoAdded(AudioSourceInfoModel * audioModel){
	m_audioSourceInfoModel = audioModel;
	setValue(m_oldValue);
}