]> git.sesse.net Git - mlt/blobdiff - mlt++/src/MltPlaylist.h
Merge ../mlt++
[mlt] / mlt++ / src / MltPlaylist.h
index 8aae7fb650c516e2fb20406e0acdf1e648f8aaeb..0cd17b0859b68c21fb55593cc3b863d16f1f8c2b 100644 (file)
@@ -21,6 +21,8 @@
 #ifndef _MLTPP_PLAYLIST_H_
 #define _MLTPP_PLAYLIST_H_
 
+#include "config.h"
+
 #include <framework/mlt.h>
 
 #include "MltProducer.h"
@@ -32,11 +34,13 @@ namespace Mlt
        class Playlist;
        class Transition;
 
-       class ClipInfo
+       class MLTPP_DECLSPEC ClipInfo
        {
                public:
+                       ClipInfo( );
                        ClipInfo( mlt_playlist_clip_info *info );
                        ~ClipInfo( );
+                       void update( mlt_playlist_clip_info *info );
                        int clip;
                        Producer *producer;
                        Producer *cut;
@@ -50,7 +54,7 @@ namespace Mlt
                        int repeat;
        };
 
-       class Playlist : public Producer
+       class MLTPP_DECLSPEC Playlist : public Producer
        {
                private:
                        mlt_playlist instance;
@@ -69,12 +73,14 @@ namespace Mlt
                        int clip( mlt_whence whence, int index );
                        int current_clip( );
                        Producer *current( );
-                       ClipInfo *clip_info( int index );
+                       ClipInfo *clip_info( int index, ClipInfo *info = NULL );
+                       static void delete_clip_info( ClipInfo *info );
                        int insert( Producer &producer, int where, int in = -1, int out = -1 );
                        int remove( int where );
                        int move( int from, int to );
                        int resize_clip( int clip, int in, int out );
                        int split( int clip, int position );
+                       int split_at( int position, bool left = true );
                        int join( int clip, int count = 1, int merge = 1 );
                        int mix( int clip, int length, Transition *transition = NULL );
                        int mix_add( int clip, Transition *transition );
@@ -83,6 +89,19 @@ namespace Mlt
                        Producer *get_clip_at( int position );
                        int get_clip_index_at( int position );
                        bool is_mix( int clip );
+                       bool is_blank( int clip );
+                       bool is_blank_at( int position );
+                       void consolidate_blanks( int keep_length = 0 );
+                       Producer *replace_with_blank( int clip );
+                       void insert_blank( int clip, int length );
+                       void pad_blanks( int position, int length, int find = 0 );
+                       int insert_at( int position, Producer *producer, int mode = 0 );
+                       int insert_at( int position, Producer &producer, int mode = 0 );
+                       int clip_start( int clip );
+                       int clip_length( int clip );
+                       int blanks_from( int clip, int bounded = 0 );
+                       int remove_region( int position, int length );
+                       int move_region( int position, int length, int new_position );
        };
 }