Constness changes
[melted] / mlt++ / src / MltProducer.h
index 2973f3f..7b28e94 100644 (file)
 #ifndef _MLTPP_PRODUCER_H_
 #define _MLTPP_PRODUCER_H_
 
+#include "config.h"
+
 #include <framework/mlt.h>
 
 #include "MltService.h"
 
 namespace Mlt
 {
-       class Producer : public Service
+       class Service;
+       class Filter;
+       class Profile;
+       class Frame;
+
+       class MLTPP_DECLSPEC Producer : public Service
        {
+               private:
+                       mlt_producer instance;
+                       Producer *parent_;
                public:
-                       virtual mlt_producer get_producer( ) = 0;
+                       Producer( );
+                       Producer( Profile& profile, const char *id, const char *service = NULL );
+                       Producer( Service &producer );
+                       Producer( mlt_producer producer );
+                       Producer( Producer &producer );
+                       Producer( Producer *producer );
+                       virtual ~Producer( );
+                       virtual mlt_producer get_producer( );
+                       Producer &parent( );
+                       mlt_producer get_parent( );
                        mlt_service get_service( );
-                       int seek( mlt_position position );
-                       mlt_position position( );
-                       mlt_position frame( );
+                       int seek( int position );
+                       int position( );
+                       int frame( );
                        int set_speed( double speed );
                        double get_speed( );
                        double get_fps( );
-                       int set_in_and_out( mlt_position in, mlt_position out );
-                       mlt_position get_in( );
-                       mlt_position get_out( );
-                       mlt_position get_length( );
-                       mlt_position get_playtime( );
-       };
-       
-       class ProducerInstance : public Producer
-       {
-               private:
-                       bool destroy;
-                       mlt_producer instance;
-               public:
-                       mlt_producer get_producer( );
-                       ProducerInstance( char *id, char *service = NULL );
-                       ProducerInstance( mlt_producer producer );
-                       ProducerInstance( Producer &producer );
-                       virtual ~ProducerInstance( );
+                       int set_in_and_out( int in, int out );
+                       int get_in( );
+                       int get_out( );
+                       int get_length( );
+                       int get_playtime( );
+                       Producer *cut( int in = 0, int out = -1 );
+                       bool is_cut( );
+                       bool is_blank( );
+                       bool same_clip( Producer &that );
+                       bool runs_into( Producer &that );
+                       void optimise( );
        };
 }