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( ) )
virtual ~FilteredConsumer( );
int connect( Service &service );
int attach( Filter &filter );
+ int last( Filter &filter );
int detach( Filter &filter );
};
}
return mlt_producer_get_playtime( get_producer( ) );
}
-int Producer::attach( Filter &filter )
-{
- return mlt_producer_attach( get_producer( ), filter.get_filter( ) );
-}
-
-int Producer::detach( Filter &filter )
-{
- return mlt_producer_detach( get_producer( ), filter.get_filter( ) );
-}
-
-Filter *Producer::filter( int index )
-{
- return new Filter( mlt_producer_filter( get_producer( ), index ) );
-}
int get_out( );
int get_length( );
int get_playtime( );
- int attach( Filter &filter );
- int detach( Filter &filter );
- Filter *filter( int index );
};
}
#include <string.h>
#include "MltService.h"
+#include "MltFilter.h"
using namespace Mlt;
Service::Service( ) :
}
return type;
}
+
+int Service::attach( Filter &filter )
+{
+ return mlt_service_attach( get_service( ), filter.get_filter( ) );
+}
+
+int Service::detach( Filter &filter )
+{
+ return mlt_service_detach( get_service( ), filter.get_filter( ) );
+}
+
+Filter *Service::filter( int index )
+{
+ return new Filter( mlt_service_filter( get_service( ), index ) );
+}
+
namespace Mlt
{
class Properties;
+ class Filter;
class Frame;
enum service_type
Service *producer( );
Frame *get_frame( int index = 0 );
service_type type( );
+ int attach( Filter &filter );
+ int detach( Filter &filter );
+ Filter *filter( int index );
};
}
%newobject Service::producer( );
%newobject Service::consumer( );
%newobject Service::get_frame( int );
+%newobject Service::filter( int );
%newobject Producer::filter( int );
%newobject Playlist::current( );
%newobject Playlist::clip_info( int );