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; sec = (time / 1000) % 60;
min = (time / 1000) / 60; min = (time / 1000) / 60;
m_number->setNumber (min, 2); if (sec != m_number2->getNumber ()) {
m_number2->setNumber (sec, 2); 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 () { }; ~SmallNumberDisplay () { };
void setNumber (int num, int len); void setNumber (int num, int len);
int getNumber (void) const { return m_num; }
public slots: public slots:
void setPixmaps (Skin *skin); void setPixmaps (Skin *skin);

View file

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

View file

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