X-Git-Url: http://research.m1stereo.tv/gitweb?a=blobdiff_plain;f=mlt%2B%2B%2Fsrc%2FMltService.h;h=2079614d46cc5fc3cebf7cd074c66d1b0777cedd;hb=f4963a6aa07644399b273b5d2b1f9299c9047414;hp=7e1b4d41029bc3576ce7f80c4933195954d4d6c7;hpb=01c1d44e8df201c3061cf20addf5421d21d8bcb0;p=melted diff --git a/mlt++/src/MltService.h b/mlt++/src/MltService.h index 7e1b4d4..2079614 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" @@ -28,25 +30,33 @@ namespace Mlt { - class Service : public Properties + class Properties; + class Filter; + class Frame; + class Profile; + + class MLTPP_DECLSPEC Service : public Properties { + private: + mlt_service instance; public: - virtual mlt_service get_service( ) = 0; - mlt_properties get_properties( ); + Service( ); + Service( Service &service ); + Service( mlt_service service ); + virtual ~Service( ); + virtual mlt_service get_service( ); + void lock( ); + void unlock( ); + virtual mlt_properties get_properties( ); int connect_producer( Service &producer, int index = 0 ); Service *consumer( ); Service *producer( ); + Profile *profile( ); Frame *get_frame( int index = 0 ); - }; - - class ServiceInstance : public Service - { - private: - mlt_service instance; - public: - mlt_service get_service( ); - ServiceInstance( Service &service ); - ServiceInstance( mlt_service service ); + mlt_service_type type( ); + int attach( Filter &filter ); + int detach( Filter &filter ); + Filter *filter( int index ); }; }