29 lines
719 B
C
29 lines
719 B
C
#pragma once
|
|
#include "Filter.h"
|
|
#include "LowPassFilter.h"
|
|
#include "BandPassFilter.h"
|
|
#include "HighPassFilter.h"
|
|
|
|
struct FilterFactory {
|
|
static Filter* CreateFilter(Filter* oldFilter, FilterType newType) {
|
|
Filter* newFilter;
|
|
switch (newType) {
|
|
case LowPass:
|
|
newFilter = new LowPassFilter(oldFilter);
|
|
break;
|
|
case BandPass:
|
|
newFilter = new BandPassFilter(oldFilter);
|
|
break;
|
|
case HighPass:
|
|
newFilter = new HighPassFilter(oldFilter);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
return newFilter;
|
|
}
|
|
|
|
static Filter* GetDefaultFilter() {
|
|
return new LowPassFilter();
|
|
}
|
|
}; |