58 |
#include <gig.h> |
#include <gig.h> |
59 |
#endif |
#endif |
60 |
|
|
61 |
|
// Needed for lroundf() |
62 |
|
#include <math.h> |
63 |
|
|
64 |
|
#ifndef CONFIG_ROUND |
65 |
|
static inline long lroundf ( float x ) |
66 |
|
{ |
67 |
|
if (x >= 0.0f) |
68 |
|
return long(x + 0.5f); |
69 |
|
else |
70 |
|
return long(x - 0.5f); |
71 |
|
} |
72 |
|
#endif |
73 |
|
|
74 |
// Timer constant stuff. |
// Timer constant stuff. |
75 |
#define QSAMPLER_TIMER_MSECS 200 |
#define QSAMPLER_TIMER_MSECS 200 |
76 |
|
|
157 |
|
|
158 |
#ifdef CONFIG_VOLUME |
#ifdef CONFIG_VOLUME |
159 |
// Make some extras into the toolbar... |
// Make some extras into the toolbar... |
|
channelsToolbar->addSeparator(); |
|
160 |
const QString& sVolumeText = tr("Master volume"); |
const QString& sVolumeText = tr("Master volume"); |
161 |
m_iVolumeChanging = 0; |
m_iVolumeChanging = 0; |
162 |
// Volume slider... |
// Volume slider... |
163 |
|
channelsToolbar->addSeparator(); |
164 |
m_pVolumeSlider = new QSlider(Qt::Horizontal, channelsToolbar); |
m_pVolumeSlider = new QSlider(Qt::Horizontal, channelsToolbar); |
165 |
// m_pVolumeSlider->setTickmarks(QSlider::Below); |
m_pVolumeSlider->setTickmarks(QSlider::Below); |
166 |
// m_pVolumeSlider->setTickInterval(10); |
m_pVolumeSlider->setTickInterval(10); |
167 |
m_pVolumeSlider->setPageStep(10); |
m_pVolumeSlider->setPageStep(10); |
168 |
m_pVolumeSlider->setRange(0, 100); |
m_pVolumeSlider->setRange(0, 100); |
169 |
m_pVolumeSlider->setMaximumHeight(22); |
m_pVolumeSlider->setMaximumHeight(22); |
170 |
m_pVolumeSlider->setMinimumWidth(160); |
m_pVolumeSlider->setMinimumWidth(160); |
|
m_pVolumeSlider->setSizePolicy( |
|
|
QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding)); |
|
171 |
QToolTip::add(m_pVolumeSlider, sVolumeText); |
QToolTip::add(m_pVolumeSlider, sVolumeText); |
172 |
QObject::connect(m_pVolumeSlider, |
QObject::connect(m_pVolumeSlider, |
173 |
SIGNAL(valueChanged(int)), |
SIGNAL(valueChanged(int)), |
174 |
SLOT(volumeChanged(int))); |
SLOT(volumeChanged(int))); |
175 |
|
channelsToolbar->setHorizontallyStretchable(true); |
176 |
|
channelsToolbar->setStretchableWidget(m_pVolumeSlider); |
177 |
// Volume spin-box |
// Volume spin-box |
178 |
|
channelsToolbar->addSeparator(); |
179 |
m_pVolumeSpinBox = new QSpinBox(channelsToolbar); |
m_pVolumeSpinBox = new QSpinBox(channelsToolbar); |
180 |
m_pVolumeSpinBox->setSuffix(" %"); |
m_pVolumeSpinBox->setSuffix(" %"); |
181 |
m_pVolumeSpinBox->setRange(0, 100); |
m_pVolumeSpinBox->setRange(0, 100); |
1723 |
m_iVolumeChanging++; |
m_iVolumeChanging++; |
1724 |
|
|
1725 |
// Update the toolbar widgets... |
// Update the toolbar widgets... |
1726 |
if (m_pVolumeSlider->value() != iVolume) |
if (m_pVolumeSlider->value() != iVolume) |
1727 |
m_pVolumeSlider->setValue(iVolume); |
m_pVolumeSlider->setValue(iVolume); |
1728 |
if (m_pVolumeSpinBox->value() != iVolume) |
if (m_pVolumeSpinBox->value() != iVolume) |
1729 |
m_pVolumeSpinBox->setValue(iVolume); |
m_pVolumeSpinBox->setValue(iVolume); |
1733 |
if (::lscp_set_volume(m_pClient, fVolume) == LSCP_OK) |
if (::lscp_set_volume(m_pClient, fVolume) == LSCP_OK) |
1734 |
appendMessages(QObject::tr("Volume: %1.").arg(fVolume)); |
appendMessages(QObject::tr("Volume: %1.").arg(fVolume)); |
1735 |
else |
else |
1736 |
appendMessagesClient("lscp_set_channel_volume"); |
appendMessagesClient("lscp_set_volume"); |
1737 |
|
|
1738 |
m_iVolumeChanging--; |
m_iVolumeChanging--; |
1739 |
|
|
1764 |
void qsamplerMainForm::updateSession (void) |
void qsamplerMainForm::updateSession (void) |
1765 |
{ |
{ |
1766 |
#ifdef CONFIG_VOLUME |
#ifdef CONFIG_VOLUME |
1767 |
int iVolume = 100.0f * ::lscp_get_volume(m_pClient); |
int iVolume = ::lroundf(100.0f * ::lscp_get_volume(m_pClient)); |
1768 |
m_iVolumeChanging++; |
m_iVolumeChanging++; |
1769 |
m_pVolumeSlider->setValue(iVolume); |
m_pVolumeSlider->setValue(iVolume); |
1770 |
m_pVolumeSpinBox->setValue(iVolume); |
m_pVolumeSpinBox->setValue(iVolume); |