#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 );
};
}