diff options
author | Jon Bergli Heier <snakebite@jvnv.net> | 2011-01-03 20:50:59 +0100 |
---|---|---|
committer | Jon Bergli Heier <snakebite@jvnv.net> | 2011-01-03 20:50:59 +0100 |
commit | 3a3bab26aea5c064c07c307d1e8ccf463edae568 (patch) | |
tree | 8789f9cbec352268858f5c9c6a1d8e2b270a3d76 /decoder.cpp | |
parent | b3c30578ae1709feb978b72d756d88c17941cad4 (diff) |
Decoder, encoder and transcoder-related classes and factories now uses boost::shared_ptr.
Diffstat (limited to 'decoder.cpp')
-rw-r--r-- | decoder.cpp | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/decoder.cpp b/decoder.cpp index e80c714..cffb8cf 100644 --- a/decoder.cpp +++ b/decoder.cpp @@ -3,17 +3,18 @@ #include <map> -namespace decoder { - typedef boost::function<DecoderBase*()> DecoderFactory; - std::map<std::string, DecoderFactory> decoder_factories; +DecoderFilter::DecoderFilter(DecoderBase::p decoder_) { + decoder = decoder_; +} + +typedef boost::function<boost::shared_ptr<DecoderBase>()> DecoderFactory; +std::map<std::string, DecoderFactory> decoder_factories; -void init() { +void decoder::init() { mpg123_init(); // initialize the mpg123 library - decoder_factories["mpg123"] = boost::factory<DecoderMpg123*>(); + decoder_factories["mpg123"] = boost::factory<boost::shared_ptr<DecoderMpg123> >(); } -DecoderBase *get_decoder(const std::string& name) { - return decoder_factories[name](); +DecoderFilter::p decoder::get_decoder(const std::string& name) { + return DecoderFilter::p(new DecoderFilter(DecoderBase::p(decoder_factories[name]()))); } - -}; |