Volume slider now 100% operational. Setting volume from promoe works!

This commit is contained in:
Chris Gilbert 2006-03-16 04:51:40 +01:00 committed by Tobias Rundstrom
parent 2c20ddf6fc
commit 8807e630f1
3 changed files with 33 additions and 3 deletions

View file

@ -86,6 +86,9 @@ VolumeSlider::setPixmaps (Skin *skin)
void
VolumeSlider::changePixmap ()
{
XMMSHandler *xmmsh = XMMSHandler::getInstance ();
xmmsh->volumeSet (m_volume_base100);
m_volslider = m_skin->getVol (m_volume);
drawPixmaps ();
}

View file

@ -294,6 +294,21 @@ XMMSHandler::volumeGet (void)
p->connect (sigc::mem_fun (this, &XMMSHandler::volume_get));
}
void
XMMSHandler::volumeSet (uint volume)
{
if(m_masterchan)
{
delete m_xmmsc->playback_volume_set ("master", volume);
}
else
{
delete m_xmmsc->playback_volume_set ("left", volume);
delete m_xmmsc->playback_volume_set ("right", volume);
}
}
void
XMMSHandler::volume_changed (XMMSResult *res)
{
@ -308,12 +323,22 @@ XMMSHandler::volume_get (XMMSResultDict *res)
QListIterator<QString> vol (Values);
uint right = atol (vol.next().toAscii());
uint left = atol (vol.next().toAscii());
if(vol.hasNext())
{
uint left = atol (vol.next().toAscii());
if(left > right)
emit getVolume (left);
else
emit getVolume (right);
if(left > right)
emit getVolume (left);
m_masterchan = false;
}
else
{
emit getVolume (right);
m_masterchan = true;
}
}

View file

@ -37,6 +37,7 @@ class XMMSHandler : public QObject, public sigc::trackable {
uint medialibQuery (QString);
void medialibQueryAdd (QString q) { delete m_xmmsc->medialib_add_to_playlist (q.toUtf8 ()); }
void volumeGet (void);
void volumeSet (uint volume);
const XMMSClient *getXMMS () { return m_xmmsc; }
@ -80,6 +81,7 @@ class XMMSHandler : public QObject, public sigc::trackable {
XMMSClient *m_xmmsc;
static XMMSHandler *singleton;
int m_currentid;
bool m_masterchan;
};
#endif