X-Git-Url: http://research.m1stereo.tv/gitweb?a=blobdiff_plain;f=src%2Fmiracle%2Fmiracle_server.c;h=1ea982fd8ef0e6a961c39332134d48872a7cb4ee;hb=c12c6c380fa37b6a0d28ce98fdcda487a8aca76d;hp=6d733ded6e0c33c25d0a1e7a16a91839d734e33c;hpb=4a39b72c5ac8fd2dd6db81a95eab08adde0491b9;p=melted diff --git a/src/miracle/miracle_server.c b/src/miracle/miracle_server.c index 6d733de..1ea982f 100644 --- a/src/miracle/miracle_server.c +++ b/src/miracle/miracle_server.c @@ -52,6 +52,12 @@ static void miracle_command_received( mlt_listener listener, mlt_properties owne listener( owner, this, ( valerie_response ** )args[ 0 ], ( char * )args[ 1 ] ); } +static void miracle_doc_received( mlt_listener listener, mlt_properties owner, miracle_server this, void **args ) +{ + if ( listener != NULL ) + listener( owner, this, ( valerie_response ** )args[ 0 ], ( char * )args[ 1 ], ( char * )args[ 2 ] ); +} + static void miracle_push_received( mlt_listener listener, mlt_properties owner, miracle_server this, void **args ) { if ( listener != NULL ) @@ -71,13 +77,20 @@ miracle_server miracle_server_init( char *id ) server->id = id; server->port = DEFAULT_TCP_PORT; server->socket = -1; + server->shutdown = 1; mlt_events_init( &server->parent ); mlt_events_register( &server->parent, "command-received", ( mlt_transmitter )miracle_command_received ); + mlt_events_register( &server->parent, "doc-received", ( mlt_transmitter )miracle_doc_received ); mlt_events_register( &server->parent, "push-received", ( mlt_transmitter )miracle_push_received ); } return server; } +const char *miracle_server_id( miracle_server server ) +{ + return server != NULL && server->id != NULL ? server->id : "miracle"; +} + void miracle_server_set_config( miracle_server server, char *config ) { if ( server != NULL ) @@ -183,6 +196,8 @@ int miracle_server_execute( miracle_server server ) struct sockaddr_in ServerAddr; int flag = 1; + server->shutdown = 0; + ServerAddr.sin_family = AF_INET; ServerAddr.sin_port = htons( server->port ); ServerAddr.sin_addr.s_addr = INADDR_ANY;