Merge ../mlt
[melted] / mlt++ / src / MltService.h
index 7e1b4d4..2079614 100644 (file)
@@ -21,6 +21,8 @@
 #ifndef _MLTPP_SERVICE_H_
 #define _MLTPP_SERVICE_H_
 
+#include "config.h"
+
 #include <framework/mlt.h>
 
 #include "MltProperties.h"
 
 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 );
        };
 }