Conserve CPU.

This commit is contained in:
Tobias 2006-03-22 13:02:07 -04:00
parent 8cf4f132ff
commit 5b519baa25
4 changed files with 21 additions and 4 deletions

View file

@ -95,8 +95,11 @@ ShadedDisplay::setPlaytime (uint time)
sec = (time / 1000) % 60;
min = (time / 1000) / 60;
m_number->setNumber (min, 2);
m_number2->setNumber (sec, 2);
if (sec != m_number2->getNumber ()) {
m_number2->setNumber (sec, 2);
} else if (min != m_number->getNumber ()) {
m_number->setNumber (min, 2);
}
}

View file

@ -14,6 +14,7 @@ class SmallNumberDisplay : public PixWidget
~SmallNumberDisplay () { };
void setNumber (int num, int len);
int getNumber (void) const { return m_num; }
public slots:
void setPixmaps (Skin *skin);

View file

@ -23,7 +23,7 @@ XMMSHandler *XMMSHandler::getInstance (void)
return singleton;
}
XMMSHandler::XMMSHandler () : sigc::trackable ()
XMMSHandler::XMMSHandler () : QObject (), sigc::trackable ()
{
m_xmmsc = new XMMSClient ("promoe");
}
@ -66,9 +66,16 @@ XMMSHandler::connect (const char *path)
XMMSResult *xr = m_xmmsc->broadcast_playback_volume_changed ();
xr->connect (sigc::mem_fun (this, &XMMSHandler::volume_changed));
QObject::connect (&m_playtime_timer, SIGNAL (timeout ()), this, SLOT (restartPlaytime ()));
return true;
}
void
XMMSHandler::restartPlaytime (void)
{
m_playtime->restart ();
}
void
XMMSHandler::medialib_entry_changed (XMMSResultValue<uint> *res)
@ -151,7 +158,8 @@ XMMSHandler::playback_playtime (XMMSResultValue<uint> *res)
emit playtimeChanged (i);
res->restart ();
m_playtime = res;
m_playtime_timer.start (500);
}
void

View file

@ -7,6 +7,7 @@
#include <QObject>
#include <QHash>
#include <QTimer>
class XMMSHandler : public QObject, public sigc::trackable {
Q_OBJECT
@ -48,6 +49,7 @@ class XMMSHandler : public QObject, public sigc::trackable {
public slots:
void setPlaytime (uint pos);
void restartPlaytime (void);
void playlistClear () { delete m_xmmsc->playlist_clear (); }
void play () { delete m_xmmsc->playback_start (); }
@ -77,6 +79,9 @@ class XMMSHandler : public QObject, public sigc::trackable {
void getVolume (uint);
private:
XMMSResultValue<uint> *m_playtime;
QTimer m_playtime_timer;
XMMSHandler (void);
QHash<QString, QString> PropDictToQHash (XMMSResultDict *res);
QHash<QString, QString> DictToQHash (XMMSResultDict *res);