diff options
Diffstat (limited to 'encoder.cpp')
-rw-r--r-- | encoder.cpp | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/encoder.cpp b/encoder.cpp index 0f2a5fe..9d352dc 100644 --- a/encoder.cpp +++ b/encoder.cpp @@ -6,18 +6,13 @@ #include <map> -EncoderFilter::EncoderFilter(EncoderBase::p encoder_) { - encoder = encoder_; -} - -typedef boost::function<EncoderBase::p ()> EncoderFactory; +typedef boost::function<Encoder::p (RawAudioSource::p)> EncoderFactory; std::map<std::string, EncoderFactory> encoder_factories; -void encoder::init() { +void Encoder::init() { encoder_factories["lame"] = boost::factory<boost::shared_ptr<EncoderLame> >(); } -//! Construct a filter with the given encoder. -EncoderFilter::p encoder::get_encoder(const std::string& name) { - return EncoderFilter::p(new EncoderFilter(encoder_factories[name]())); +Encoder::p Encoder::get(const std::string& name, RawAudioSource::p source) { + return encoder_factories[name](source); } |