Plasma
playercontainer.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "playercontainer.h"
00021
00022 #include "playercontrol.h"
00023
00024 PlayerContainer::PlayerContainer(Player::Ptr m_player, QObject* parent)
00025 : DataContainer(parent)
00026 , m_player(m_player)
00027 , m_controller(0)
00028 {
00029 Q_ASSERT(m_player);
00030
00031 setObjectName(m_player->name());
00032
00033 connect(this, SIGNAL(updateRequested(DataContainer*)),
00034 this, SLOT(updateInfo()));
00035 }
00036
00037 Plasma::Service* PlayerContainer::service(QObject* parent)
00038 {
00039 if (!m_controller) {
00040 kDebug() << "Creating controller";
00041 m_controller = new PlayerControl(parent, m_player);
00042 connect(this, SIGNAL(updateRequested(DataContainer*)),
00043 m_controller, SLOT(updateEnabledOperations()));
00044 }
00045 return m_controller;
00046 }
00047
00048 void PlayerContainer::updateInfo()
00049 {
00050 if (!m_player->isRunning()) {
00051 kDebug() << objectName() << "isn't running";
00052 return;
00053 }
00054
00055 switch(m_player->state()) {
00056 case Player::Playing:
00057 setData("State", "playing");
00058 break;
00059 case Player::Paused:
00060 setData("State", "paused");
00061 break;
00062 case Player::Stopped:
00063 setData("State", "stopped");
00064 break;
00065 }
00066
00067 setData("Artist", m_player->artist());
00068 setData("Album", m_player->album());
00069 setData("Title", m_player->title());
00070 setData("Track number", m_player->trackNumber());
00071 setData("Comment", m_player->comment());
00072 setData("Genre", m_player->genre());
00073 setData("Length", m_player->length());
00074 setData("Position", m_player->position());
00075 setData("Volume", m_player->volume());
00076 setData("Artwork", m_player->artwork());
00077
00078
00079 checkForUpdate();
00080 }
00081
00082 #include "playercontainer.moc"