summaryrefslogtreecommitdiff
path: root/decoder.cpp
diff options
context:
space:
mode:
authorJon Bergli Heier <snakebite@jvnv.net>2011-01-03 20:50:59 +0100
committerJon Bergli Heier <snakebite@jvnv.net>2011-01-03 20:50:59 +0100
commit3a3bab26aea5c064c07c307d1e8ccf463edae568 (patch)
tree8789f9cbec352268858f5c9c6a1d8e2b270a3d76 /decoder.cpp
parentb3c30578ae1709feb978b72d756d88c17941cad4 (diff)
Decoder, encoder and transcoder-related classes and factories now uses boost::shared_ptr.
Diffstat (limited to 'decoder.cpp')
-rw-r--r--decoder.cpp19
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]())));
}
-
-};