diff options
author | Ted Gould <ted@gould.cx> | 2009-12-02 12:05:28 -0600 |
---|---|---|
committer | Ted Gould <ted@gould.cx> | 2009-12-02 12:05:28 -0600 |
commit | 5317413c8321c19e844664721aae963b5fa00d9a (patch) | |
tree | e716e959353ef0ea12c0f186b97b0f26dd156832 /src/application-service.c | |
parent | f897644bc0a7908665718495d8991310cc11b170 (diff) | |
parent | 5c4e31a5c9310845ca8e5260545e1bff78e0b5ea (diff) | |
download | libayatana-appindicator-5317413c8321c19e844664721aae963b5fa00d9a.tar.gz libayatana-appindicator-5317413c8321c19e844664721aae963b5fa00d9a.tar.bz2 libayatana-appindicator-5317413c8321c19e844664721aae963b5fa00d9a.zip |
* Massive name change.
* debian/* changing packaging to not be "custom" anymore and now
everything is "application"
* debian/control: Splitting out libappindicator
* Adding debian/libappindicator0.install,
debian/libappindicator-dev.install,
debian/indicator-application.install
Diffstat (limited to 'src/application-service.c')
-rw-r--r-- | src/application-service.c | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/src/application-service.c b/src/application-service.c new file mode 100644 index 0000000..56e3e80 --- /dev/null +++ b/src/application-service.c @@ -0,0 +1,56 @@ + +#include "libindicator/indicator-service.h" +#include "notification-item-client.h" +#include "application-service-appstore.h" +#include "application-service-watcher.h" +#include "dbus-shared.h" + +/* The base main loop */ +static GMainLoop * mainloop = NULL; +/* Where the application registry lives */ +static ApplicationServiceAppstore * appstore = NULL; +/* Interface for applications */ +static ApplicationServiceWatcher * watcher = NULL; +/* The service management interface */ +static IndicatorService * service = NULL; + +/* Recieves the disonnection signal from the service + object and closes the mainloop. */ +static void +service_disconnected (IndicatorService * service, gpointer data) +{ + g_debug("Service disconnected"); + if (mainloop != NULL) { + g_main_loop_quit(mainloop); + } + return; +} + +/* Builds up the core objects and puts us spinning into + a main loop. */ +int +main (int argc, char ** argv) +{ + g_type_init(); + + /* Bring us up as a basic indicator service */ + service = indicator_service_new(INDICATOR_APPLICATION_DBUS_ADDR); + g_signal_connect(G_OBJECT(service), "disconnected", G_CALLBACK(service_disconnected), NULL); + + /* Building our app store */ + appstore = APPLICATION_SERVICE_APPSTORE(g_object_new(APPLICATION_SERVICE_APPSTORE_TYPE, NULL)); + + /* Adding a watcher for the Apps coming up */ + watcher = application_service_watcher_new(appstore); + + /* Building and executing our main loop */ + mainloop = g_main_loop_new(NULL, FALSE); + g_main_loop_run(mainloop); + + /* Unref'ing all the objects */ + g_object_unref(G_OBJECT(watcher)); + g_object_unref(G_OBJECT(appstore)); + g_object_unref(G_OBJECT(service)); + + return 0; +} |