From 3a3bab26aea5c064c07c307d1e8ccf463edae568 Mon Sep 17 00:00:00 2001 From: Jon Bergli Heier Date: Mon, 3 Jan 2011 20:50:59 +0100 Subject: Decoder, encoder and transcoder-related classes and factories now uses boost::shared_ptr. --- decoder.cpp | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) (limited to 'decoder.cpp') diff --git a/decoder.cpp b/decoder.cpp index e80c714..cffb8cf 100644 --- a/decoder.cpp +++ b/decoder.cpp @@ -3,17 +3,18 @@ #include -namespace decoder { - typedef boost::function DecoderFactory; - std::map decoder_factories; +DecoderFilter::DecoderFilter(DecoderBase::p decoder_) { + decoder = decoder_; +} + +typedef boost::function()> DecoderFactory; +std::map decoder_factories; -void init() { +void decoder::init() { mpg123_init(); // initialize the mpg123 library - decoder_factories["mpg123"] = boost::factory(); + decoder_factories["mpg123"] = boost::factory >(); } -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]()))); } - -}; -- cgit v1.2.3