diff options
Diffstat (limited to 'examples')
-rw-r--r-- | examples/multimedia/audioinput/audioinput.cpp | 14 | ||||
-rw-r--r-- | examples/multimedia/audiooutput/audiooutput.cpp | 15 | ||||
-rw-r--r-- | examples/multimedia/multimedia.pro | 3 | ||||
-rw-r--r-- | examples/multimediawidgets/player/player.cpp | 12 | ||||
-rw-r--r-- | examples/multimediawidgets/player/player.h | 4 | ||||
-rw-r--r-- | examples/multimediawidgets/player/player.pro | 4 | ||||
-rw-r--r-- | examples/multimediawidgets/player/playercontrols.cpp | 21 | ||||
-rw-r--r-- | examples/multimediawidgets/player/playercontrols.h | 1 |
8 files changed, 43 insertions, 31 deletions
diff --git a/examples/multimedia/audioinput/audioinput.cpp b/examples/multimedia/audioinput/audioinput.cpp index fd73d4f16..cdf56af99 100644 --- a/examples/multimedia/audioinput/audioinput.cpp +++ b/examples/multimedia/audioinput/audioinput.cpp @@ -315,7 +315,10 @@ void InputTest::initializeAudio() void InputTest::createAudioInput() { m_audioInput = new QAudioInput(m_device, m_format, this); - m_volumeSlider->setValue(m_audioInput->volume() * 100); + qreal initialVolume = QAudio::convertVolume(m_audioInput->volume(), + QAudio::LinearVolumeScale, + QAudio::LogarithmicVolumeScale); + m_volumeSlider->setValue(qRound(initialVolume * 100)); m_audioInfo->start(); m_audioInput->start(m_audioInfo); } @@ -386,6 +389,11 @@ void InputTest::deviceChanged(int index) void InputTest::sliderChanged(int value) { - if (m_audioInput) - m_audioInput->setVolume(qreal(value) / 100); + if (m_audioInput) { + qreal linearVolume = QAudio::convertVolume(value / qreal(100), + QAudio::LogarithmicVolumeScale, + QAudio::LinearVolumeScale); + + m_audioInput->setVolume(linearVolume); + } } diff --git a/examples/multimedia/audiooutput/audiooutput.cpp b/examples/multimedia/audiooutput/audiooutput.cpp index a00ffbb00..3e9ec7377 100644 --- a/examples/multimedia/audiooutput/audiooutput.cpp +++ b/examples/multimedia/audiooutput/audiooutput.cpp @@ -250,7 +250,11 @@ void AudioTest::createAudioOutput() m_audioOutput = new QAudioOutput(m_device, m_format, this); m_generator->start(); m_audioOutput->start(m_generator); - m_volumeSlider->setValue(int(m_audioOutput->volume()*100.0f)); + + qreal initialVolume = QAudio::convertVolume(m_audioOutput->volume(), + QAudio::LinearVolumeScale, + QAudio::LogarithmicVolumeScale); + m_volumeSlider->setValue(qRound(initialVolume * 100)); } AudioTest::~AudioTest() @@ -270,8 +274,13 @@ void AudioTest::deviceChanged(int index) void AudioTest::volumeChanged(int value) { - if (m_audioOutput) - m_audioOutput->setVolume(qreal(value/100.0f)); + if (m_audioOutput) { + qreal linearVolume = QAudio::convertVolume(value / qreal(100), + QAudio::LogarithmicVolumeScale, + QAudio::LinearVolumeScale); + + m_audioOutput->setVolume(linearVolume); + } } void AudioTest::pushTimerExpired() diff --git a/examples/multimedia/multimedia.pro b/examples/multimedia/multimedia.pro index 449cb150f..0a01439c4 100644 --- a/examples/multimedia/multimedia.pro +++ b/examples/multimedia/multimedia.pro @@ -1,4 +1,5 @@ TEMPLATE = subdirs +QT_FOR_CONFIG += multimedia-private SUBDIRS += audiodecoder @@ -20,5 +21,5 @@ qtHaveModule(quick) { video } -config_openal: SUBDIRS += audioengine +qtConfig(openal): SUBDIRS += audioengine diff --git a/examples/multimediawidgets/player/player.cpp b/examples/multimediawidgets/player/player.cpp index e787aa269..ab048838a 100644 --- a/examples/multimediawidgets/player/player.cpp +++ b/examples/multimediawidgets/player/player.cpp @@ -55,9 +55,7 @@ Player::Player(QWidget *parent) , videoWidget(0) , coverLabel(0) , slider(0) -#ifndef PLAYER_NO_COLOROPTIONS , colorDialog(0) -#endif { //! [create-objs] player = new QMediaPlayer(this); @@ -135,11 +133,9 @@ Player::Player(QWidget *parent) fullScreenButton = new QPushButton(tr("FullScreen"), this); fullScreenButton->setCheckable(true); -#ifndef PLAYER_NO_COLOROPTIONS colorButton = new QPushButton(tr("Color Options..."), this); colorButton->setEnabled(false); connect(colorButton, SIGNAL(clicked()), this, SLOT(showColorDialog())); -#endif QBoxLayout *displayLayout = new QHBoxLayout; displayLayout->addWidget(videoWidget, 2); @@ -152,9 +148,7 @@ Player::Player(QWidget *parent) controlLayout->addWidget(controls); controlLayout->addStretch(1); controlLayout->addWidget(fullScreenButton); -#ifndef PLAYER_NO_COLOROPTIONS controlLayout->addWidget(colorButton); -#endif QBoxLayout *layout = new QVBoxLayout; layout->addLayout(displayLayout); @@ -175,9 +169,7 @@ Player::Player(QWidget *parent) controls->setEnabled(false); playlistView->setEnabled(false); openButton->setEnabled(false); -#ifndef PLAYER_NO_COLOROPTIONS colorButton->setEnabled(false); -#endif fullScreenButton->setEnabled(false); } @@ -347,9 +339,7 @@ void Player::videoAvailableChanged(bool available) if (fullScreenButton->isChecked()) videoWidget->setFullScreen(true); } -#ifndef PLAYER_NO_COLOROPTIONS colorButton->setEnabled(available); -#endif } void Player::setTrackInfo(const QString &info) @@ -389,7 +379,6 @@ void Player::updateDurationInfo(qint64 currentInfo) labelDuration->setText(tStr); } -#ifndef PLAYER_NO_COLOROPTIONS void Player::showColorDialog() { if (!colorDialog) { @@ -434,4 +423,3 @@ void Player::showColorDialog() } colorDialog->show(); } -#endif diff --git a/examples/multimediawidgets/player/player.h b/examples/multimediawidgets/player/player.h index 7f5d0881b..ca643bd7d 100644 --- a/examples/multimediawidgets/player/player.h +++ b/examples/multimediawidgets/player/player.h @@ -94,9 +94,7 @@ private slots: void displayErrorMessage(); -#ifndef PLAYER_NO_COLOROPTIONS void showColorDialog(); -#endif private: void setTrackInfo(const QString &info); @@ -111,10 +109,8 @@ private: QSlider *slider; QLabel *labelDuration; QPushButton *fullScreenButton; -#ifndef PLAYER_NO_COLOROPTIONS QPushButton *colorButton; QDialog *colorDialog; -#endif QLabel *labelHistogram; HistogramWidget *histogram; diff --git a/examples/multimediawidgets/player/player.pro b/examples/multimediawidgets/player/player.pro index 067b31b11..0c5be6888 100644 --- a/examples/multimediawidgets/player/player.pro +++ b/examples/multimediawidgets/player/player.pro @@ -20,9 +20,5 @@ SOURCES = main.cpp \ videowidget.cpp \ histogramwidget.cpp -maemo* { - DEFINES += PLAYER_NO_COLOROPTIONS -} - target.path = $$[QT_INSTALL_EXAMPLES]/multimediawidgets/player INSTALLS += target diff --git a/examples/multimediawidgets/player/playercontrols.cpp b/examples/multimediawidgets/player/playercontrols.cpp index 07aa2e731..3d968b452 100644 --- a/examples/multimediawidgets/player/playercontrols.cpp +++ b/examples/multimediawidgets/player/playercontrols.cpp @@ -45,6 +45,7 @@ #include <QStyle> #include <QToolButton> #include <QComboBox> +#include <QAudio> PlayerControls::PlayerControls(QWidget *parent) : QWidget(parent) @@ -87,7 +88,7 @@ PlayerControls::PlayerControls(QWidget *parent) volumeSlider = new QSlider(Qt::Horizontal, this); volumeSlider->setRange(0, 100); - connect(volumeSlider, SIGNAL(sliderMoved(int)), this, SIGNAL(changeVolume(int))); + connect(volumeSlider, SIGNAL(valueChanged(int)), this, SLOT(onVolumeSliderValueChanged())); rateBox = new QComboBox(this); rateBox->addItem("0.5x", QVariant(0.5)); @@ -138,13 +139,20 @@ void PlayerControls::setState(QMediaPlayer::State state) int PlayerControls::volume() const { - return volumeSlider ? volumeSlider->value() : 0; + qreal linearVolume = QAudio::convertVolume(volumeSlider->value() / qreal(100), + QAudio::LogarithmicVolumeScale, + QAudio::LinearVolumeScale); + + return qRound(linearVolume * 100); } void PlayerControls::setVolume(int volume) { - if (volumeSlider) - volumeSlider->setValue(volume); + qreal logarithmicVolume = QAudio::convertVolume(volume / qreal(100), + QAudio::LinearVolumeScale, + QAudio::LogarithmicVolumeScale); + + volumeSlider->setValue(qRound(logarithmicVolume * 100)); } bool PlayerControls::isMuted() const @@ -203,3 +211,8 @@ void PlayerControls::updateRate() { emit changeRate(playbackRate()); } + +void PlayerControls::onVolumeSliderValueChanged() +{ + emit changeVolume(volume()); +} diff --git a/examples/multimediawidgets/player/playercontrols.h b/examples/multimediawidgets/player/playercontrols.h index 0ab195faa..d29a06d6c 100644 --- a/examples/multimediawidgets/player/playercontrols.h +++ b/examples/multimediawidgets/player/playercontrols.h @@ -82,6 +82,7 @@ private slots: void playClicked(); void muteClicked(); void updateRate(); + void onVolumeSliderValueChanged(); private: QMediaPlayer::State playerState; |