X-Git-Url: http://research.m1stereo.tv/gitweb?a=blobdiff_plain;f=mlt%2B%2B%2Fsrc%2FMltService.h;h=aa2c0e278e1ef0e3dce6cc75b549ef276e452e06;hb=47fb1506a99bae1c9cb90f313176f9dab58d5854;hp=9aef193ba0bca654bfa17835d80b07fb4442f6ec;hpb=0caa0a91b0971439dfe00d0ed9bc05992b7dd609;p=melted diff --git a/mlt++/src/MltService.h b/mlt++/src/MltService.h index 9aef193..aa2c0e2 100644 --- a/mlt++/src/MltService.h +++ b/mlt++/src/MltService.h @@ -21,6 +21,8 @@ #ifndef _MLTPP_SERVICE_H_ #define _MLTPP_SERVICE_H_ +#include "config.h" + #include #include "MltProperties.h" @@ -29,23 +31,10 @@ namespace Mlt { class Properties; + class Filter; class Frame; - enum service_type - { - invalid_type, - unknown_type, - producer_type, - playlist_type, - tractor_type, - multitrack_type, - filter_type, - transition_type, - consumer_type, - field_type - }; - - class Service : public Properties + class MLTPP_DECLSPEC Service : public Properties { private: mlt_service instance; @@ -55,12 +44,17 @@ namespace Mlt Service( mlt_service service ); virtual ~Service( ); virtual mlt_service get_service( ); - mlt_properties get_properties( ); + void lock( ); + void unlock( ); + virtual mlt_properties get_properties( ); int connect_producer( Service &producer, int index = 0 ); Service *consumer( ); Service *producer( ); Frame *get_frame( int index = 0 ); - service_type type( ); + mlt_service_type type( ); + int attach( Filter &filter ); + int detach( Filter &filter ); + Filter *filter( int index ); }; }