-STATIC char* _rygel_list_raw (dev_ctx_T *, unsigned int *);
-STATIC char* _rygel_find_id_for_index (dev_ctx_T *, char *, unsigned int);
-STATIC char* _rygel_find_metadata_for_id (dev_ctx_T *, char *);
-STATIC char* _rygel_find_uri_for_metadata (dev_ctx_T *, char *);
-STATIC unsigned char _rygel_start_doing (dev_ctx_T *, char *, char *, State);
-STATIC unsigned char _rygel_find_av_transport (dev_ctx_T *);
-STATIC void _rygel_device_cb (GUPnPControlPoint *, GUPnPDeviceProxy *, gpointer);
-STATIC void _rygel_av_transport_cb (GUPnPControlPoint *, GUPnPDeviceProxy *, gpointer);
-STATIC void _rygel_content_cb (GUPnPServiceProxy *, GUPnPServiceProxyAction *, gpointer);
-STATIC void _rygel_metadata_cb (GUPnPServiceProxy *, GUPnPServiceProxyAction *, gpointer);
-STATIC void _rygel_select_cb (GUPnPServiceProxy *, GUPnPServiceProxyAction *, gpointer);
-STATIC void _rygel_do_cb (GUPnPServiceProxy *, GUPnPServiceProxyAction *, gpointer);
-
-static unsigned int client_count = 0;
-static struct dev_ctx **dev_ctx = NULL;
+unsigned char _rygel_init (mediaCtxHandleT *);
+void _rygel_free (mediaCtxHandleT *);
+json_object* _rygel_list (mediaCtxHandleT *);
+unsigned char _rygel_select (mediaCtxHandleT *, unsigned int);
+unsigned char _rygel_upload (mediaCtxHandleT *ctx, const char *path, void (*oncompletion)(void*,int), void *closure);
+unsigned char _rygel_do (mediaCtxHandleT *, State, char *);