Mercurial > hg > sonic-visualiser
diff main/MainWindow.cpp @ 1038:0f46daf55706 3.0-integration
Merge from default branch
author | Chris Cannam |
---|---|
date | Fri, 24 Jul 2015 16:31:54 +0100 |
parents | 8d45d6412ca6 2d524c9eee33 |
children | 1f4e40be5aa2 |
line wrap: on
line diff
--- a/main/MainWindow.cpp Tue Jul 07 17:39:06 2015 +0100 +++ b/main/MainWindow.cpp Fri Jul 24 16:31:54 2015 +0100 @@ -235,15 +235,15 @@ m_playSpeed = new AudioDial(frame); m_playSpeed->setMinimum(0); - m_playSpeed->setMaximum(200); - m_playSpeed->setValue(100); + m_playSpeed->setMaximum(120); + m_playSpeed->setValue(60); m_playSpeed->setFixedWidth(32); m_playSpeed->setFixedHeight(32); m_playSpeed->setNotchesVisible(true); m_playSpeed->setPageStep(10); - m_playSpeed->setObjectName(tr("Playback Speedup")); - m_playSpeed->setDefaultValue(100); - m_playSpeed->setRangeMapper(new PlaySpeedRangeMapper(0, 200)); + m_playSpeed->setObjectName(tr("Playback Speed")); + m_playSpeed->setRangeMapper(new PlaySpeedRangeMapper); + m_playSpeed->setDefaultValue(60); m_playSpeed->setShowToolTip(true); connect(m_playSpeed, SIGNAL(valueChanged(int)), this, SLOT(playSpeedChanged(int))); @@ -3869,26 +3869,38 @@ void MainWindow::playSpeedChanged(int position) { - PlaySpeedRangeMapper mapper(0, 200); + PlaySpeedRangeMapper mapper; double percent = m_playSpeed->mappedValue(); double factor = mapper.getFactorForValue(percent); -// cerr << "speed = " << position << " percent = " << percent << " factor = " << factor << endl; - - bool something = (position != 100); - - int pc = int(lrint(percent)); - - if (!something) { +// cerr << "play speed position = " << position << " (range 0-120) percent = " << percent << " factor = " << factor << endl; + + int centre = m_playSpeed->defaultValue(); + + // Percentage is shown to 0dp if >100, to 1dp if <100; factor is + // shown to 3sf + + char pcbuf[30]; + char facbuf[30]; + + if (position == centre) { contextHelpChanged(tr("Playback speed: Normal")); + } else if (position < centre) { + sprintf(pcbuf, "%.1f", percent); + sprintf(facbuf, "%.3g", 1.0 / factor); + contextHelpChanged(tr("Playback speed: %1% (%2x slower)") + .arg(pcbuf) + .arg(facbuf)); } else { - contextHelpChanged(tr("Playback speed: %1%2%") - .arg(position > 100 ? "+" : "") - .arg(pc)); + sprintf(pcbuf, "%.0f", percent); + sprintf(facbuf, "%.3g", factor); + contextHelpChanged(tr("Playback speed: %1% (%2x faster)") + .arg(pcbuf) + .arg(facbuf)); } - m_playSource->setTimeStretch(factor); + m_playSource->setTimeStretch(1.0 / factor); // factor is a speedup updateMenuStates(); }