Mercurial > hg > easaier-soundaccess
annotate sv/filter/RealTimeFilterFactory.cpp @ 107:c3ac34b2e45b
correct bugs after DAN review
author | lbajardsilogic |
---|---|
date | Thu, 13 Sep 2007 12:42:44 +0000 |
parents | 8ebc85f6ce4e |
children | 3d68e73a877b |
rev | line source |
---|---|
lbajardsilogic@79 | 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ |
lbajardsilogic@79 | 2 |
lbajardsilogic@79 | 3 /* Sound Access |
lbajardsilogic@79 | 4 EASAIER client application. |
lbajardsilogic@79 | 5 Silogic 2007. Laure Bajard. |
lbajardsilogic@79 | 6 |
lbajardsilogic@79 | 7 This program is free software; you can redistribute it and/or |
lbajardsilogic@79 | 8 modify it under the terms of the GNU General Public License as |
lbajardsilogic@79 | 9 published by the Free Software Foundation; either version 2 of the |
lbajardsilogic@79 | 10 License, or (at your option) any later version. See the file |
lbajardsilogic@79 | 11 COPYING included with this distribution for more information. |
lbajardsilogic@79 | 12 */ |
lbajardsilogic@79 | 13 |
lbajardsilogic@79 | 14 #include "RealTimeFilterFactory.h" |
lbajardsilogic@79 | 15 |
lbajardsilogic@79 | 16 #include "TimeStretchFilter.h" |
lbajardsilogic@79 | 17 |
lbajardsilogic@79 | 18 #include <iostream> |
lbajardsilogic@79 | 19 |
lbajardsilogic@79 | 20 RealTimeFilterFactory * RealTimeFilterFactory::m_instance = new RealTimeFilterFactory; |
lbajardsilogic@79 | 21 |
lbajardsilogic@79 | 22 RealTimeFilterFactory * RealTimeFilterFactory::getInstance() |
lbajardsilogic@79 | 23 { |
lbajardsilogic@79 | 24 return m_instance; |
lbajardsilogic@79 | 25 } |
lbajardsilogic@79 | 26 |
lbajardsilogic@79 | 27 RealTimeFilterFactory::RealTimeFilterFactory() |
lbajardsilogic@79 | 28 {} |
lbajardsilogic@79 | 29 |
lbajardsilogic@79 | 30 RealTimeFilterFactory::~RealTimeFilterFactory() |
lbajardsilogic@79 | 31 {} |
lbajardsilogic@79 | 32 |
lbajardsilogic@79 | 33 RealTimeFilterFactory::FilterTypeSet RealTimeFilterFactory::getFilterTypes() |
lbajardsilogic@79 | 34 { |
lbajardsilogic@79 | 35 FilterTypeSet types; |
lbajardsilogic@79 | 36 |
lbajardsilogic@79 | 37 types.insert(TimeStretch); |
lbajardsilogic@79 | 38 |
lbajardsilogic@79 | 39 return types; |
lbajardsilogic@79 | 40 } |
lbajardsilogic@79 | 41 |
lbajardsilogic@79 | 42 QString RealTimeFilterFactory::getFilterLabel(FilterType type) |
lbajardsilogic@79 | 43 { |
lbajardsilogic@79 | 44 switch (type) { |
lbajardsilogic@82 | 45 case TimeStretch: return "Pitch-Time Stretching"; |
lbajardsilogic@79 | 46 default: return "unknown"; |
lbajardsilogic@79 | 47 } |
lbajardsilogic@79 | 48 } |
lbajardsilogic@79 | 49 |
lbajardsilogic@79 | 50 RealTimeFilterFactory::FilterType RealTimeFilterFactory::getFilterType(QString strType) |
lbajardsilogic@79 | 51 { |
lbajardsilogic@82 | 52 if (strType == "Pitch-Time Stretching") { |
lbajardsilogic@79 | 53 return TimeStretch; |
lbajardsilogic@79 | 54 } |
lbajardsilogic@79 | 55 else |
lbajardsilogic@79 | 56 { |
lbajardsilogic@79 | 57 return UnknownFilter; |
lbajardsilogic@79 | 58 } |
lbajardsilogic@79 | 59 } |
lbajardsilogic@79 | 60 |
lbajardsilogic@79 | 61 Filter * RealTimeFilterFactory::createFilter(FilterType type) |
lbajardsilogic@79 | 62 { |
lbajardsilogic@79 | 63 Filter *filter = 0; |
lbajardsilogic@79 | 64 |
lbajardsilogic@79 | 65 switch (type) { |
lbajardsilogic@79 | 66 |
lbajardsilogic@79 | 67 case TimeStretch: |
lbajardsilogic@79 | 68 filter = new TimeStretchFilter; |
lbajardsilogic@79 | 69 break; |
lbajardsilogic@79 | 70 |
lbajardsilogic@79 | 71 default: break; |
lbajardsilogic@79 | 72 } |
lbajardsilogic@79 | 73 |
lbajardsilogic@79 | 74 if (!filter) { |
lbajardsilogic@79 | 75 std::cerr << "RealTimeFilterFactory::createFilter: Unknown filter type " << type << std::endl; |
lbajardsilogic@79 | 76 } else { |
lbajardsilogic@79 | 77 filter->setObjectName(getFilterLabel(type)); |
lbajardsilogic@79 | 78 } |
lbajardsilogic@79 | 79 |
lbajardsilogic@79 | 80 return filter; |
lbajardsilogic@79 | 81 } |