]> git.sesse.net Git - mlt/commitdiff
mlt_field.[hc]: added mlt_field_disconnect_service
authorddennedy <ddennedy@d19143bc-622f-0410-bfdd-b5b2a6649095>
Fri, 9 May 2008 04:29:32 +0000 (04:29 +0000)
committerddennedy <ddennedy@d19143bc-622f-0410-bfdd-b5b2a6649095>
Fri, 9 May 2008 04:29:32 +0000 (04:29 +0000)
git-svn-id: https://mlt.svn.sourceforge.net/svnroot/mlt/trunk/mlt@1120 d19143bc-622f-0410-bfdd-b5b2a6649095

src/framework/mlt_field.c
src/framework/mlt_field.h

index d1409d64b030eea5a66ef387a438fda81c0b9254..e6131dd8864f90e2322a7be216b22d9e71df0a7e 100644 (file)
@@ -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 );
+}
index 839276eaf71b3c3ec9bdabab34b749711e63e8fd..d5b0c205d3768a8b159a82cecba6950ef133b463 100644 (file)
@@ -32,6 +32,7 @@ extern mlt_properties mlt_field_properties( mlt_field self );
 extern int mlt_field_plant_filter( mlt_field self, mlt_filter that, int track );
 extern int mlt_field_plant_transition( mlt_field self, mlt_transition that, int a_track, int b_track );
 extern void mlt_field_close( mlt_field self );
+extern void mlt_field_disconnect_service( mlt_field self, mlt_service service );
 
 #endif