svapp  1.9
AudioTargetFactory.h
Go to the documentation of this file.
00001 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
00002 
00003 /*
00004     Sonic Visualiser
00005     An audio file viewer and annotation editor.
00006     Centre for Digital Music, Queen Mary, University of London.
00007     This file copyright 2006 Chris Cannam.
00008     
00009     This program is free software; you can redistribute it and/or
00010     modify it under the terms of the GNU General Public License as
00011     published by the Free Software Foundation; either version 2 of the
00012     License, or (at your option) any later version.  See the file
00013     COPYING included with this distribution for more information.
00014 */
00015 
00016 #ifndef _AUDIO_TARGET_FACTORY_H_
00017 #define _AUDIO_TARGET_FACTORY_H_
00018 
00019 #include <vector>
00020 #include <QString>
00021 
00022 #include "base/Debug.h"
00023 
00024 class AudioCallbackPlaySource;
00025 class AudioCallbackPlayTarget;
00026 
00027 class AudioTargetFactory 
00028 {
00029 public:
00030     static AudioTargetFactory *getInstance();
00031 
00032     std::vector<QString> getCallbackTargetNames(bool includeAuto = true) const;
00033     QString getCallbackTargetDescription(QString name) const;
00034     QString getDefaultCallbackTarget() const;
00035     bool isAutoCallbackTarget(QString name) const;
00036     void setDefaultCallbackTarget(QString name);
00037 
00038     AudioCallbackPlayTarget *createCallbackTarget(AudioCallbackPlaySource *);
00039 
00040 protected:
00041     AudioTargetFactory();
00042     static AudioTargetFactory *m_instance;
00043     QString m_default;
00044 };
00045 
00046 #endif
00047