* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
+#include <string.h>
+#include <stdlib.h>
#include "MltPlaylist.h"
using namespace Mlt;
+ClipInfo::ClipInfo( mlt_playlist_clip_info *info ) :
+ clip( info->clip ),
+ producer( new ProducerInstance( info->producer ) ),
+ service( new ServiceInstance( info->service ) ),
+ start( info->start ),
+ resource( strdup( info->resource ) ),
+ frame_in( info->frame_in ),
+ frame_out( info->frame_out ),
+ frame_count( info->frame_count ),
+ length( info->length ),
+ fps( info->fps )
+{
+}
+
+ClipInfo::~ClipInfo( )
+{
+ delete producer;
+ delete service;
+ free( resource );
+}
+
+PlaylistInstance::PlaylistInstance( ) :
+ destroy( true ),
+ instance( NULL )
+{
+ instance = mlt_playlist_init( );
+}
+
+PlaylistInstance::PlaylistInstance( Playlist &playlist ) :
+ destroy( false ),
+ instance( playlist.get_playlist( ) )
+{
+}
+
+PlaylistInstance::PlaylistInstance( mlt_playlist playlist ) :
+ destroy( false ),
+ instance( playlist )
+{
+}
+
+PlaylistInstance::~PlaylistInstance( )
+{
+ if ( destroy )
+ mlt_playlist_close( instance );
+}
+
+mlt_playlist PlaylistInstance::get_playlist( )
+{
+ return instance;
+}
+
mlt_producer Playlist::get_producer( )
{
return mlt_playlist_producer( get_playlist( ) );
return mlt_playlist_blank( get_playlist( ), length );
}
-mlt_playlist PlaylistInstance::get_playlist( )
+mlt_position Playlist::clip( mlt_whence whence, int index )
{
- return instance;
+ return mlt_playlist_clip( get_playlist( ), whence, index );
}
-PlaylistInstance::PlaylistInstance( ) :
- destroy( true ),
- instance( NULL )
+int Playlist::current_clip( )
{
- instance = mlt_playlist_init( );
+ return mlt_playlist_current_clip( get_playlist( ) );
}
-PlaylistInstance::PlaylistInstance( Playlist &playlist ) :
- destroy( false ),
- instance( playlist.get_playlist( ) )
+Producer *Playlist::current( )
{
+ return new ProducerInstance( mlt_playlist_current( get_playlist( ) ) );
}
-PlaylistInstance::PlaylistInstance( mlt_playlist playlist ) :
- destroy( false ),
- instance( playlist )
+ClipInfo *Playlist::clip_info( int index )
{
+ mlt_playlist_clip_info info;
+ mlt_playlist_get_clip_info( get_playlist( ), &info, index );
+ return new ClipInfo( &info );
}
-PlaylistInstance::~PlaylistInstance( )
+int Playlist::insert( Producer &producer, int where, mlt_position in, mlt_position out )
{
- if ( destroy )
- mlt_playlist_close( instance );
+ return mlt_playlist_insert( get_playlist( ), producer.get_producer( ), where, in, out );
+}
+
+int Playlist::remove( int where )
+{
+ return mlt_playlist_remove( get_playlist( ), where );
}
+int Playlist::move( int from, int to )
+{
+ return mlt_playlist_move( get_playlist( ), from, to );
+}
+
+int Playlist::resize_clip( int clip, mlt_position in, mlt_position out )
+{
+ return mlt_playlist_resize_clip( get_playlist( ), clip, in, out );
+}
+
+