Index: roard/clients.c
===================================================================
--- roard/clients.c	(revision 5654)
+++ roard/clients.c	(revision 5739)
@@ -33,31 +33,7 @@
 struct roar_client_server * g_clients[ROAR_CLIENTS_MAX];
 
-static struct roar_dl_proto
-#if !defined(ROAR_WITHOUT_DCOMP_EMUL_ESD) && defined(ROAR_HAVE_H_ESD)
-__proto_common_esd = {
- .proto = ROAR_PROTO_ESOUND,
- .description = "EsounD emulation",
- .flags = ROAR_DL_PROTO_FLAGS_NONE,
- .handle = emul_esd_check_client
-},
-#endif
-#ifndef ROAR_WITHOUT_DCOMP_EMUL_RPLAY
-__proto_common_rplay = {
- .proto = ROAR_PROTO_RPLAY,
- .description = "RPlay emulation",
- .flags = ROAR_DL_PROTO_FLAGS_NONE,
- .handle = emul_rplay_check_client
-},
-#endif
-#ifndef ROAR_WITHOUT_DCOMP_EMUL_GOPHER
-__proto_common_gopher = {
- .proto = ROAR_PROTO_GOPHER,
- .description = "The Internet Gopher Protocol",
- .flags = ROAR_DL_PROTO_FLAGS_NONE,
- .handle = emul_gopher_check_client,
- .flushed = emul_gopher_flushed_client
-}
-#endif
-;
+extern struct roar_dl_proto __proto_common_rplay;
+extern struct roar_dl_proto __proto_common_gopher;
+extern struct roar_dl_proto __proto_common_esd;
 
 static struct roard_proto_handle __protos[MAX_PROTOS] = {
@@ -252,21 +228,4 @@
     // nothing needed to be done here
    break;
-#ifndef ROAR_WITHOUT_DCOMP_EMUL_ESD
-#ifdef ROAR_HAVE_H_ESD
-  case ROAR_PROTO_ESOUND:
-    ROAR_DBG("net_get_new_client(*): execing ESD CONNECT command");
-
-    if ( roar_vio_open_fh_socket(&vio, fh) == -1 )
-     return -1;
-
-    ROAR_DBG("net_get_new_client(*): creating VIO OK");
-
-    if ( emul_esd_exec_command(client, ESD_PROTO_CONNECT, &vio) == -1 )
-     return -1;
-
-    ROAR_DBG("net_get_new_client(*): CONNECT execed sucessfully");
-   break;
-#endif
-#endif
 #ifndef ROAR_WITHOUT_DCOMP_EMUL_SIMPLE
   case ROAR_PROTO_SIMPLE:
@@ -277,13 +236,4 @@
 #ifndef ROAR_WITHOUT_DCOMP_EMUL_RSOUND
   case ROAR_PROTO_RSOUND: // nothing to do here.
-   break;
-#endif
-#ifndef ROAR_WITHOUT_DCOMP_EMUL_RPLAY
-  case ROAR_PROTO_RPLAY:
-    if ( roar_vio_open_fh_socket(&vio, fh) == -1 )
-     return -1;
-
-    if ( emul_rplay_on_status(client, NULL, &vio, NULL, 0) == -1 )
-     return -1;
    break;
 #endif
Index: roard/include/emul_esd.h.OLD
===================================================================
--- roard/include/emul_esd.h.OLD	(revision 5640)
+++ roard/include/emul_esd.h.OLD	(revision 5739)
@@ -32,39 +32,5 @@
 #ifdef ROAR_HAVE_H_ESD
 
-// in case it is not allready included,
-// only needed in the case we have no libesd.* but a esd.h
-#include <esd.h>
-
-struct emul_esd_command {
- int    cmd;
- size_t datalen;
-#if !defined(ROAR_TARGET_MICROCONTROLLER) && !defined(ROAR_MINIMAL)
- char name[COMMAND_MAX_NAMELEN];
-#else
- char * name;
-#endif
- int (*handler)(int client, struct emul_esd_command * cmd, void * data, struct roar_vio_calls * vio);
-};
-
-int emul_esd_exec_command  (int client, int cmd, struct roar_vio_calls * vio);
-int emul_esd_check_client  (int client, struct roar_vio_calls * vio, struct roar_buffer ** obuffer, void ** userdata, const struct roar_keyval * protopara, ssize_t protoparalen, struct roar_dl_librarypara * pluginpara);
-
-int emul_esd_int_read_buf  (int client, int * data, void * buf);
-int emul_esd_int_read      (int client, int * data, struct roar_vio_calls * vio);
-int emul_esd_int_write     (int client, int   data, struct roar_vio_calls * vio);
-int emul_esd_test_auth     (int client, void * data, struct roar_vio_calls * vio);
-int emul_esd_test_byteorder(int client, void * data);
-
-int emul_esd_on_connect    (int client, struct emul_esd_command * cmd, void * data, struct roar_vio_calls * vio);
-int emul_esd_on_stream     (int client, struct emul_esd_command * cmd, void * data, struct roar_vio_calls * vio);
-int emul_esd_on_latency    (int client, struct emul_esd_command * cmd, void * data, struct roar_vio_calls * vio);
-int emul_esd_on_standby    (int client, struct emul_esd_command * cmd, void * data, struct roar_vio_calls * vio);
-int emul_esd_on_standbymode(int client, struct emul_esd_command * cmd, void * data, struct roar_vio_calls * vio);
-
-int emul_esd_on_stream_pan (int client, struct emul_esd_command * cmd, void * data, struct roar_vio_calls * vio);
-
-int emul_esd_on_server_info(int client, struct emul_esd_command * cmd, void * data, struct roar_vio_calls * vio);
-
-int emul_esd_on_all_info   (int client, struct emul_esd_command * cmd, void * data, struct roar_vio_calls * vio);
+extern struct roar_dl_proto __proto_common_esd;
 
 #endif
Index: roard/include/emul_gopher.h.OLD
===================================================================
--- roard/include/emul_gopher.h.OLD	(revision 5640)
+++ roard/include/emul_gopher.h.OLD	(revision 5739)
@@ -29,6 +29,5 @@
 #include <roaraudio.h>
 
-int emul_gopher_check_client(int client, struct roar_vio_calls * vio, struct roar_buffer ** obuffer, void ** userdata, const struct roar_keyval * protopara, ssize_t protoparalen, struct roar_dl_librarypara * pluginpara);
-int emul_gopher_flushed_client(int client, struct roar_vio_calls * vio, struct roar_buffer ** obuffer, void ** userdata, const struct roar_keyval * protopara, ssize_t protoparalen, struct roar_dl_librarypara * pluginpara);
+extern struct roar_dl_proto __proto_common_gopher;
 
 #endif
Index: roard/include/emul_rplay.h.OLD
===================================================================
--- roard/include/emul_rplay.h.OLD	(revision 5640)
+++ roard/include/emul_rplay.h.OLD	(revision 5739)
@@ -29,33 +29,5 @@
 #include <roaraudio.h>
 
-#ifndef ROAR_WITHOUT_DCOMP_EMUL_RPLAY
-
-struct emul_rplay_command {
- const char * name;
- const char * usage;
- ssize_t      min_args;
- ssize_t      max_args;
- int (*handler)(int client, struct emul_rplay_command * cmd, struct roar_vio_calls * vio, struct roar_keyval * kv, size_t kvlen);
-};
-
-int emul_rplay_check_client  (int client, struct roar_vio_calls * vio, struct roar_buffer ** obuffer, void ** userdata, const struct roar_keyval * protopara, ssize_t protoparalen, struct roar_dl_librarypara * pluginpara);
-
-int emul_rplay_exec_command  (int client, struct roar_vio_calls * vio, char * command);
-
-int emul_rplay_send_error    (int client, struct emul_rplay_command * cmd, struct roar_vio_calls * vio, struct roar_keyval * kv, size_t kvlen, const char * msg);
-
-int emul_rplay_on_status(int client, struct emul_rplay_command * cmd, struct roar_vio_calls * vio, struct roar_keyval * kv, size_t kvlen);
-int emul_rplay_on_quit(int client, struct emul_rplay_command * cmd, struct roar_vio_calls * vio, struct roar_keyval * kv, size_t kvlen);
-int emul_rplay_on_help(int client, struct emul_rplay_command * cmd, struct roar_vio_calls * vio, struct roar_keyval * kv, size_t kvlen);
-
-// things we need to implent soon:
-int emul_rplay_on_play(int client, struct emul_rplay_command * cmd, struct roar_vio_calls * vio, struct roar_keyval * kv, size_t kvlen);
-int emul_rplay_on_put(int client, struct emul_rplay_command * cmd, struct roar_vio_calls * vio, struct roar_keyval * kv, size_t kvlen);
-int emul_rplay_on_set(int client, struct emul_rplay_command * cmd, struct roar_vio_calls * vio, struct roar_keyval * kv, size_t kvlen);
-int emul_rplay_on_modify(int client, struct emul_rplay_command * cmd, struct roar_vio_calls * vio, struct roar_keyval * kv, size_t kvlen);
-int emul_rplay_on_pause(int client, struct emul_rplay_command * cmd, struct roar_vio_calls * vio, struct roar_keyval * kv, size_t kvlen);
-int emul_rplay_on_continue(int client, struct emul_rplay_command * cmd, struct roar_vio_calls * vio, struct roar_keyval * kv, size_t kvlen);
-int emul_rplay_on_stop(int client, struct emul_rplay_command * cmd, struct roar_vio_calls * vio, struct roar_keyval * kv, size_t kvlen);
-#endif
+extern struct roar_dl_proto __proto_common_rplay;
 
 #endif
