X-Git-Url: http://research.m1stereo.tv/gitweb?a=blobdiff_plain;f=src%2Fmiracle%2Fmiracle_unit.c;h=f7d5509e9d9f5d583f0c46c08cadd3e395f71dcc;hb=26748780198a5760af65208e8c2a87581ef362cd;hp=31c01cf7cdb869a7be8a787a3caf5f2e0978e217;hpb=9390e8b584f3f717f0a326893c0e37cf187a0a51;p=melted diff --git a/src/miracle/miracle_unit.c b/src/miracle/miracle_unit.c index 31c01cf..f7d5509 100644 --- a/src/miracle/miracle_unit.c +++ b/src/miracle/miracle_unit.c @@ -252,37 +252,30 @@ valerie_error_code miracle_unit_load( miracle_unit unit, char *clip, double in, return valerie_invalid_file; } -valerie_error_code miracle_unit_insert( miracle_unit unit, const char *clip, int index, double in, double out ) +valerie_error_code miracle_unit_insert( miracle_unit unit, char *clip, int index, double in, double out ) { - /* - dv_player player = miracle_unit_get_dv_player( unit ); - valerie_error_code error = dv_player_get_error( player ); - if ( error == dv_pump_ok ) + mlt_producer instance = create_producer( unit, clip ); + + if ( instance != NULL ) { - error = dv_player_insert_file( player, (char*) clip, index, in, out ); - dv1394d_log( LOG_DEBUG, "inserted clip %s", clip ); - if ( unit->is_terminated ) - miracle_unit_status_communicate( unit ); + mlt_properties properties = unit->properties; + mlt_playlist playlist = mlt_properties_get_data( properties, "playlist", NULL ); + mlt_playlist_insert( playlist, instance, index, in, out ); + miracle_log( LOG_DEBUG, "inserted clip %s at %d", clip, index ); + miracle_unit_status_communicate( unit ); + return valerie_ok; } - return error; - */ - return valerie_ok; + + return valerie_invalid_file; } valerie_error_code miracle_unit_remove( miracle_unit unit, int index ) { - /* - dv_player player = miracle_unit_get_dv_player( unit ); - valerie_error_code error = dv_player_get_error( player ); - if ( error == dv_pump_ok ) - { - error = dv_player_remove_clip( player, index ); - dv1394d_log( LOG_DEBUG, "removed clip %d", index ); - if ( unit->is_terminated ) - miracle_unit_status_communicate( unit ); - } - return error; - */ + mlt_properties properties = unit->properties; + mlt_playlist playlist = mlt_properties_get_data( properties, "playlist", NULL ); + mlt_playlist_remove( playlist, index ); + miracle_log( LOG_DEBUG, "removed clip at %d", index ); + miracle_unit_status_communicate( unit ); return valerie_ok; } @@ -295,18 +288,11 @@ valerie_error_code miracle_unit_clean( miracle_unit unit ) valerie_error_code miracle_unit_move( miracle_unit unit, int src, int dest ) { - /* - dv_player player = miracle_unit_get_dv_player( unit ); - valerie_error_code error = dv_player_get_error( player ); - if ( error == dv_pump_ok ) - { - error = dv_player_move_clip( player, src, dest ); - dv1394d_log( LOG_DEBUG, "moved clip %d to %d", src, dest ); - if ( unit->is_terminated ) - miracle_unit_status_communicate( unit ); - } - return error; - */ + mlt_properties properties = unit->properties; + mlt_playlist playlist = mlt_properties_get_data( properties, "playlist", NULL ); + mlt_playlist_move( playlist, src, dest ); + miracle_log( LOG_DEBUG, "moved clip %d to %d", src, dest ); + miracle_unit_status_communicate( unit ); return valerie_ok; } @@ -450,16 +436,15 @@ void miracle_unit_change_position( miracle_unit unit, int clip, double position miracle_unit_status_communicate( unit ); } -/** Change speed. +/** Get the index of the current clip. */ -void miracle_unit_change_speed( miracle_unit unit, int speed ) -{ -} - int miracle_unit_get_current_clip( miracle_unit unit ) { - return 0; + mlt_properties properties = unit->properties; + mlt_playlist playlist = mlt_properties_get_data( properties, "playlist", NULL ); + int clip_index = mlt_playlist_current_clip( playlist ); + return clip_index; } /** Set a clip's in point