X-Git-Url: http://research.m1stereo.tv/gitweb?a=blobdiff_plain;f=src%2Fframework%2Fmlt_field.c;fp=src%2Fframework%2Fmlt_field.c;h=e6131dd8864f90e2322a7be216b22d9e71df0a7e;hb=4fcb6720ea4c619f8ba57e919b7202c77e6041f9;hp=d1409d64b030eea5a66ef387a438fda81c0b9254;hpb=72d9d2b1c07794c6255ed08253236305f9b6640e;p=melted diff --git a/src/framework/mlt_field.c b/src/framework/mlt_field.c index d1409d6..e6131dd 100644 --- a/src/framework/mlt_field.c +++ b/src/framework/mlt_field.c @@ -191,3 +191,26 @@ void mlt_field_close( mlt_field this ) } } +void mlt_field_disconnect_service( mlt_field self, mlt_service service ) +{ + mlt_service p = mlt_service_producer( service ); + mlt_service c = mlt_service_consumer( service); + int i; + switch ( mlt_service_identify(c) ) + { + case filter_type: + i = mlt_filter_get_track( MLT_FILTER(c) ); + mlt_service_connect_producer( c, p, i ); + break; + case transition_type: + i = mlt_transition_get_a_track ( MLT_TRANSITION(c) ); + mlt_service_connect_producer( c, p, i ); + break; + case tractor_type: + self->producer = p; + mlt_tractor_connect( MLT_TRACTOR(c), p ); + default: + break; + } + mlt_events_fire( mlt_field_properties( self ), "service-changed", NULL ); +}