}
mlt_service_base;
-/** Friends?
+/** Private methods
*/
static void mlt_service_disconnect( mlt_service this );
return mlt_properties_init( &this->parent, this );
}
-/** Return the properties object.
-*/
-
-mlt_properties mlt_service_properties( mlt_service this )
-{
- return &this->parent;
-}
-
/** Connect a producer service.
Returns: > 0 warning, == 0 success, < 0 serious error
1 = this service does not accept input
// Get the service base
mlt_service_base *base = this->private;
- // Does this service accept input?
- if ( mlt_service_accepts_input( this ) == 0 )
- return 1;
-
- // Does the producer service accept output connections?
- if ( mlt_service_accepts_output( producer ) == 0 )
- return 2;
-
// Check if the producer is already registered with this service
for ( i = 0; i < base->count; i ++ )
if ( base->in[ i ] == producer )
/** Disconnect this service from its consumer.
*/
-void mlt_service_disconnect( mlt_service this )
+static void mlt_service_disconnect( mlt_service this )
{
// Get the service base
mlt_service_base *base = this->private;
/** Associate this service to the its consumer.
*/
-void mlt_service_connect( mlt_service this, mlt_service that )
+static void mlt_service_connect( mlt_service this, mlt_service that )
{
// Get the service base
mlt_service_base *base = this->private;
base->out = that;
}
-
/** Get the first connected producer service.
*/
return producer;
}
-
-
-/** Get the service state.
-*/
-
-mlt_service_state mlt_service_get_state( mlt_service this )
-{
- mlt_service_state state = mlt_state_unknown;
- if ( mlt_service_has_input( this ) )
- state |= mlt_state_providing;
- if ( mlt_service_has_output( this ) )
- state |= mlt_state_connected;
- if ( state != ( mlt_state_providing | mlt_state_connected ) )
- state |= mlt_state_dormant;
- return state;
-}
-
-/** Get the maximum number of inputs accepted.
- Returns: -1 for many, 0 for none or n for fixed.
-*/
-
-int mlt_service_accepts_input( mlt_service this )
-{
- if ( this->accepts_input == NULL )
- return -1;
- else
- return this->accepts_input( this );
-}
-
-/** Get the maximum number of outputs accepted.
-*/
-
-int mlt_service_accepts_output( mlt_service this )
-{
- if ( this->accepts_output == NULL )
- return 1;
- else
- return this->accepts_output( this );
-}
-
-/** Determines if this service has input
-*/
-
-int mlt_service_has_input( mlt_service this )
-{
- if ( this->has_input == NULL )
- return 1;
- else
- return this->has_input( this );
-}
-/** Determine if this service has output
-*/
-
-int mlt_service_has_output( mlt_service this )
-{
- mlt_service_base *base = this->private;
- if ( this->has_output == NULL )
- return base->out != NULL;
- else
- return this->has_output( this );
-}
-
-/** Check if the service is active.
-*/
-
-int mlt_service_is_active( mlt_service this )
-{
- return !( mlt_service_get_state( this ) & mlt_state_dormant );
-}
-
-/** Obtain a frame to pass on.
+/** Default implementation of get_frame.
*/
static int service_get_frame( mlt_service this, mlt_frame_ptr frame, int index )
return 0;
}
+/** Obtain a frame.
+*/
+
int mlt_service_get_frame( mlt_service this, mlt_frame_ptr frame, int index )
{
return this->get_frame( this, frame, index );