X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=registryd%2Fregistry-main.c;h=2c7284435eb95133356dac716333a6e42c2e834b;hb=fc127cbb0f6101f0dc98416737d651c0cda2ca10;hp=e648f456d591a6083147bbba9ded5759b5b56ed4;hpb=5d480319bfc6e106a9cfda9cd4509ec626e9f50d;p=platform%2Fcore%2Fuifw%2Fat-spi2-atk.git diff --git a/registryd/registry-main.c b/registryd/registry-main.c index e648f45..2c72844 100644 --- a/registryd/registry-main.c +++ b/registryd/registry-main.c @@ -2,7 +2,8 @@ * AT-SPI - Assistive Technology Service Provider Interface * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap) * - * Copyright 2001 Sun Microsystems Inc. + * Copyright 2001, 2002 Sun Microsystems Inc., + * Copyright 2001, 2002 Ximian, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -20,35 +21,64 @@ * Boston, MA 02111-1307, USA. */ +#ifdef AT_SPI_DEBUG #include +#endif + +#include #include +#include #include "registry.h" int -main (int argc, - char **argv) +main (int argc, char **argv) { - Registry *registry; - char *obj_id; - - if (!bonobo_init (&argc, argv)) - { - g_error ("Could not initialize oaf / Bonobo"); - } + int ret; + char *obj_id, *display_name; + char *cp, *dp; + SpiRegistry *registry; + GSList *reg_env = NULL; - obj_id = "OAFIID:Accessibility_Registry:proto0.1"; + if (!bonobo_init (&argc, argv)) + { + g_error ("Could not initialize oaf / Bonobo"); + } - registry = registry_new (); + obj_id = "OAFIID:Accessibility_Registry:1.0"; - oaf_active_server_register ( - obj_id, - bonobo_object_corba_objref (bonobo_object (registry))); + registry = spi_registry_new (); - fprintf (stderr, "Registry Message: Registry daemon is running.\n"); - bonobo_main (); + display_name = g_getenv ("AT_SPI_DISPLAY"); + if (!display_name) + { + display_name = g_strdup (gdk_display_get_name (gdk_display_get_default ())); + cp = strrchr (display_name, '.'); + dp = strrchr (display_name, ':'); + if (cp && dp && ((guint) cp > (guint) dp)) *cp = '\0'; + } - return 0; -} + reg_env = bonobo_activation_registration_env_set ( reg_env, "AT_SPI_DISPLAY", + display_name); + ret = bonobo_activation_register_active_server ( + obj_id, + bonobo_object_corba_objref (bonobo_object (registry)), + reg_env); + bonobo_activation_registration_env_free (reg_env); + if (ret != Bonobo_ACTIVATION_REG_SUCCESS) + { +#ifdef AT_SPI_DEBUG + fprintf (stderr, "SpiRegistry Message: SpiRegistry daemon was already running.\n"); +#endif + } + else + { +#ifdef AT_SPI_DEBUG + fprintf (stderr, "SpiRegistry Message: SpiRegistry daemon is running.\n"); +#endif + bonobo_main (); + } + return 0; +}