bool Miracle::start( )
{
- miracle_server_execute( server );
- _real = server->parser->real;
- _execute = server->parser->execute;
- _received = server->parser->received;
- _push = server->parser->push;
- server->parser->real = this;
- server->parser->execute = mlt_miracle_execute;
- server->parser->received = mlt_miracle_received;
- server->parser->push = mlt_miracle_push;
+ if ( miracle_server_execute( server ) == 0 )
+ {
+ _real = server->parser->real;
+ _execute = server->parser->execute;
+ _received = server->parser->received;
+ _push = server->parser->push;
+ server->parser->real = this;
+ server->parser->execute = mlt_miracle_execute;
+ server->parser->received = mlt_miracle_received;
+ server->parser->push = mlt_miracle_push;
+ }
return server->shutdown == 0;
}
nanosleep( &tm, NULL );
}
+void Miracle::log_level( int threshold )
+{
+ miracle_log_init( log_stderr, threshold );
+}
+
+Properties *Miracle::unit( int index )
+{
+ mlt_properties properties = miracle_server_fetch_unit( server, index );
+ return properties != NULL ? new Properties( properties ) : NULL;
+}