kde-extraapps/kmix/core/ControlPool.h

49 lines
1.3 KiB
C
Raw Normal View History

/*
* KMix -- KDE's full featured mini mixer
*
*
* Copyright (c) The KMix Authors
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this program; if not, write to the Free
* Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#ifndef CONTROL_POOL_H
#define CONTROL_POOL_H
#include <memory>
#include "core/mixdevice.h"
class ControlPool
{
public:
static ControlPool* instance();
std::shared_ptr<MixDevice> add(const QString& key, MixDevice* mixDevice);
std::shared_ptr<MixDevice> get(const QString& key);
private:
ControlPool();
virtual ~ControlPool() {};
QMap<QString, std::shared_ptr<MixDevice> > *pool;
static ControlPool* _instance;
static std::shared_ptr<MixDevice> TheEmptyDevice;
};
#endif