Plasma
playerfactory.h
Go to the documentation of this file.00001 /* 00002 * Copyright 2008 Alex Merry <alex.merry@kdemail.net> 00003 * 00004 * This library is free software; you can redistribute it and/or 00005 * modify it under the terms of the GNU Lesser General Public 00006 * License as published by the Free Software Foundation; either 00007 * version 2.1 of the License, or (at your option) any later version. 00008 * 00009 * This library is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 * Lesser General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU Lesser General Public 00015 * License along with this program. If not, see <http://www.gnu.org/licenses/>. 00016 */ 00017 00018 #ifndef PLAYERFACTORY_H 00019 #define PLAYERFACTORY_H 00020 00021 #include <QObject> 00022 #include <QVariantList> 00023 00024 #include "player.h" 00025 00029 class PlayerFactory : public QObject 00030 { 00031 Q_OBJECT 00032 public: 00033 PlayerFactory(QObject* parent = 0); 00039 virtual Player::Ptr create(const QVariantList& args = QVariantList()) = 0; 00040 }; 00041 00045 class PollingPlayerFactory : public PlayerFactory 00046 { 00047 Q_OBJECT 00048 public: 00049 PollingPlayerFactory(QObject* parent = 0); 00059 virtual bool exists(const QVariantList& args = QVariantList()) = 0; 00060 }; 00061 00066 class DBusPlayerFactory : public PlayerFactory 00067 { 00068 Q_OBJECT 00069 public: 00070 DBusPlayerFactory(QObject* parent = 0); 00075 virtual bool matches(const QString& serviceName) = 0; 00076 // don't let the QString overload hide this 00077 virtual Player::Ptr create(const QVariantList& args = QVariantList()) = 0; 00078 Player::Ptr create(const QString& serviceName); 00079 }; 00080 00081 #endif // PLAYERFACTORY_H