rendered paste bodyDBusGProxy* nvclock_applet_dbus_init() {
pthread_t *dthread;
DBusGProxy* remote_object;
DBusGConnection *bus;
GError *error = NULL;
GMainLoop *mainloop;
gint32 value=0;
gdouble temp=0;
gint32 count=0;
gchar *tmp;
dbus_g_thread_init();
g_type_init ();
bus = dbus_g_bus_get (DBUS_BUS_SESSION, &error);
if (!bus) lose_gerror ("Couldn't connect to session bus", error);
remote_object = dbus_g_proxy_new_for_name (bus, "org.nvclock", "/org/nvclock/object", "org.nvclock");
if (!remote_object) lose_gerror ("Failed to get name owner", error);
return remote_object;
}
static void signal_handler(DBusGProxy *proxy, gint changes)
{
GError *error = NULL;
fprintf(stderr,"hello dbus ;)\n");
int card=GET_CARD_NUMBER(changes);
int temp;
char *text;
if((changes & CAP_GPU_TEMP) && (card==0)) {
if(!dbus_g_proxy_call (remote_object, "getGpuTemperature", &error, G_TYPE_UINT, card, G_TYPE_INVALID,G_TYPE_UINT, &temp, G_TYPE_INVALID)) lose_gerror ("Failed to complete GetTuple", error);
}
fprintf(stderr,"temp:%d\n"temp);
}
static gboolean nvclock_applet_fill (PanelApplet *applet, const gchar *iid, GtkWidget *widget,gpointer data)
{
GtkTooltips *tooltips;
remote_object=nvclock_applet_dbus_init();
nv_applet_gconf_init(applet);
nvclock_applet_init_menu(applet);
appletw=applet; //store applet pointer
dbus_g_proxy_add_signal (remote_object, "UpdateNotificationEvent", G_TYPE_INT, G_TYPE_INVALID);
dbus_g_proxy_connect_signal (remote_object, "UpdateNotificationEvent", G_CALLBACK (signal_handler), NULL, NULL);
if(strcmp(iid, "OAFIID:NVClockApplet") != 0) return FALSE;
draw_applet(FALSE);
tooltips = gtk_tooltips_new ();
gtk_tooltips_set_tip (tooltips, GTK_WIDGET(applet), "nvclock monitoring applet", NULL);
gtk_tooltips_enable (tooltips);
gtk_widget_show_all (GTK_WIDGET (applet));
return TRUE;
}