~cairo-dock-team/cairo-dock-plug-ins/experimental

« back to all changes in this revision

Viewing changes to src/powermanager-dbus.c

  • Committer: fabounet
  • Date: 2008-01-11 01:35:06 UTC
  • Revision ID: svn-v4:620951bb-bb42-0410-82c3-830e739ed170:trunk/plug-ins:294
enlevage fichiers indesirables

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#include <string.h>
2
 
#include <dbus/dbus-glib.h>
3
 
 
4
 
#include "powermanager-draw.h"
5
 
#include "powermanager-dbus.h"
6
 
 
7
 
DBusGConnection *dbus_connexion_session;
8
 
DBusGConnection *dbus_connexion_system;
9
 
DBusGProxy *dbus_proxy_power;
10
 
DBusGProxy *dbus_proxy_battery;
11
 
 
12
 
CD_APPLET_INCLUDE_MY_VARS
13
 
 
14
 
extern gboolean dbus_enable;
15
 
extern gboolean battery_present;
16
 
extern gboolean on_battery;
17
 
extern int battery_time;
18
 
extern int battery_charge;
19
 
 
20
 
gboolean dbus_get_dbus (void)
21
 
{
22
 
        g_print ("%s ()\n",__func__);
23
 
 
24
 
        g_print ("Connexion au bus ... ");
25
 
        dbus_connexion_session = dbus_g_bus_get(DBUS_BUS_SESSION, NULL);
26
 
        dbus_connexion_system = dbus_g_bus_get(DBUS_BUS_SYSTEM, NULL);
27
 
        
28
 
        if(!dbus_connexion_session || !dbus_connexion_system)
29
 
        {
30
 
                g_print ("echouee\n");
31
 
                return FALSE;
32
 
        }
33
 
        else
34
 
        {
35
 
                g_print ("reussie\n");
36
 
 
37
 
                dbus_proxy_power = dbus_g_proxy_new_for_name (
38
 
                        dbus_connexion_session,
39
 
                        "org.freedesktop.PowerManagement",
40
 
                        "/org/freedesktop/PowerManagement",
41
 
                        "org.freedesktop.PowerManagement"
42
 
                );
43
 
                
44
 
                dbus_proxy_battery = dbus_g_proxy_new_for_name (
45
 
                        dbus_connexion_system,
46
 
                        "org.freedesktop.Hal",
47
 
                        "/org/freedesktop/Hal/devices/acpi_BAT0",
48
 
                        "org.freedesktop.Hal.Device"
49
 
                );
50
 
                
51
 
                dbus_g_proxy_add_signal(dbus_proxy_power, "OnBatteryChanged",
52
 
                        G_TYPE_BOOLEAN,
53
 
                        G_TYPE_INVALID);
54
 
                
55
 
                return TRUE;
56
 
        }
57
 
}
58
 
 
59
 
void dbus_connect_to_bus (void)
60
 
{
61
 
        g_print ("%s ()\n",__func__);
62
 
        dbus_g_proxy_connect_signal(dbus_proxy_power, "OnBatteryChanged",
63
 
                G_CALLBACK(on_battery_changed), NULL, NULL);
64
 
}
65
 
 
66
 
void dbus_disconnect_from_bus (void)
67
 
{
68
 
        g_print ("%s ()\n",__func__);
69
 
        dbus_g_proxy_disconnect_signal(dbus_proxy_power, "OnBatteryChanged",
70
 
                G_CALLBACK(on_battery_changed), NULL);
71
 
        g_print ("OnBatteryChanged deconnecte\n");
72
 
}
73
 
 
74
 
gboolean get_on_battery(void)
75
 
{
76
 
        dbus_g_proxy_call (dbus_proxy_power, "GetOnBattery", NULL,
77
 
                G_TYPE_INVALID,
78
 
                G_TYPE_BOOLEAN, &on_battery,
79
 
                G_TYPE_INVALID);
80
 
}
81
 
 
82
 
void on_battery_changed(DBusGProxy *proxy, gboolean onBattery, gpointer data)
83
 
{
84
 
        if(onBattery)
85
 
        {
86
 
                on_battery = 1;
87
 
        }
88
 
        else
89
 
        {
90
 
                on_battery = 0;
91
 
        }
92
 
        update_icon();
93
 
}
94
 
 
95
 
void update_stats(void)
96
 
{
97
 
        if(battery_present)
98
 
        {
99
 
                dbus_g_proxy_call (dbus_proxy_battery, "GetPropertyInteger", NULL,
100
 
                        G_TYPE_STRING,"battery.charge_level.percentage",
101
 
                        G_TYPE_INVALID,
102
 
                        G_TYPE_INT, &battery_charge,
103
 
                        G_TYPE_INVALID);
104
 
        }
105
 
        update_icon();
106
 
}
107
 
 
108
 
void detect_battery(void)
109
 
{
110
 
        dbus_g_proxy_call (dbus_proxy_battery, "GetPropertyBoolean", NULL,
111
 
                G_TYPE_STRING,"battery.present",
112
 
                G_TYPE_INVALID,
113
 
                G_TYPE_BOOLEAN, &battery_present,
114
 
                G_TYPE_INVALID);
115
 
}