X-Git-Url: http://research.m1stereo.tv/gitweb?a=blobdiff_plain;f=mlt%2B%2B%2Fsrc%2FMltFilteredConsumer.cpp;h=d414da987d29554a25ab1dae763107440152e120;hb=674e98fe350d24254bc9948cea7b146426457282;hp=944281f5929ca9c049b44031dffcbd6a6d7b680a;hpb=1d262eab5f8850bf2603a405e09ad213341f4ab7;p=melted diff --git a/mlt++/src/MltFilteredConsumer.cpp b/mlt++/src/MltFilteredConsumer.cpp index 944281f..d414da9 100644 --- a/mlt++/src/MltFilteredConsumer.cpp +++ b/mlt++/src/MltFilteredConsumer.cpp @@ -28,6 +28,13 @@ FilteredConsumer::FilteredConsumer( char *id, char *arg ) : first = new Service( *this ); } +FilteredConsumer::FilteredConsumer( Consumer &consumer ) : + Consumer( consumer ) +{ + // Create a reference to the first service + first = new Service( *this ); +} + FilteredConsumer::~FilteredConsumer( ) { // Delete the reference to the first service @@ -62,6 +69,24 @@ int FilteredConsumer::attach( Filter &filter ) return error; } +int FilteredConsumer::last( Filter &filter ) +{ + int error = 0; + if ( filter.is_valid( ) ) + { + Service *producer = this->producer( ); + error = filter.connect( *producer ); + if ( error == 0 ) + connect_producer( filter ); + delete producer; + } + else + { + error = 1; + } + return error; +} + int FilteredConsumer::detach( Filter &filter ) { if ( filter.is_valid( ) )