Merge ../mlt
[melted] / mlt++ / src / MltService.h
index 1e8a936..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"
@@ -31,22 +33,9 @@ namespace Mlt
        class Properties;
        class Filter;
        class Frame;
+       class Profile;
 
-       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;
@@ -56,12 +45,15 @@ 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( );
+                       Profile *profile( );
                        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 );