~ubuntu-branches/ubuntu/maverick/cairo-dock-plug-ins/maverick

« back to all changes in this revision

Viewing changes to powermanager/src/powermanager-dbus.c

  • Committer: Bazaar Package Importer
  • Author(s): Matthieu Baerts (matttbe)
  • Date: 2010-08-10 00:05:57 UTC
  • mfrom: (1.1.5 upstream)
  • Revision ID: james.westby@ubuntu.com-20100810000557-pfxoz5w7hbyclcqh
Tags: 2.2.0~0beta4-0ubuntu1
* New Upstream Version (LP: #614625)
* Fixed a few bugs on LP:
 - LP: #483963: Dustbin applet does not display trashes on all volumes
 - LP: #485159: Some apps have problem with Systray
 - LP: #500677: ~/.xsession-errors is too much used by CD
 - LP: #500979: Shortcuts: the order gets messed up
 - LP: #521531: Mail: crashes on Maildir
 - LP: #519915: GTG: create a new applet to control GTG
 - LP: #526138: GMenu doesn't handle desktop file exec strings properly
 - LP: #531317: CMake: Added an error if the prefix of 'cairo-dock-plugins'
                 is not the same 'cairo-dock-core'
 - LP: #531319: CMake: check the version of 'cairo-dock' when building
                 'cairo-dock-plugins'
 - LP: #537115: Click at the position where icon lavel was, the icon
                 and dock still receive the event
 - LP: #537943: Terminal applet shortkey behaviour
 - LP: #538637: Trash applet doesn't create .trashinfo files on XFCE
 - More details on the 'ChangeLog' file
* debian/rules:
 - Autotools has been replaced by CMake
 - cdbs is now used.
* debian/copyright:
 - Updated with the new applets
* debian/control:
 - Autotools has been replaced by CMake
 - Added libcurl4-gnutls-dev, libindicator-dev, libdbusmenu-glib-dev
   libido-0.1-dev, libical-dev, libdbusmenu-gtk-dev as Build-deps
 - Bump Standard-Version to 3.9.1
 - Wget is required for dnd2share applet
 - Added the exact realease for 'cairo-dock-dev' in order to prevent any
    build error if this package is not already available (thx to didrocks)
* debian/cairo-dock-plug-ins*.install:
 - All sonames are now installed into lib32 or lib64 (lib*)

Show diffs side-by-side

added added

removed removed

Lines of Context:
33
33
static DBusGProxy *dbus_proxy_stats = NULL;
34
34
static DBusGProxy *dbus_proxy_battery = NULL;
35
35
 
 
36
static void on_battery_changed(DBusGProxy *proxy, gboolean onBattery, gpointer data);
 
37
 
36
38
 
37
39
gboolean cd_powermanager_find_battery (void)
38
40
{
84
86
                                        {
85
87
                                                str2 ++;
86
88
                                                myData.iCapacity = atoi (str2);
87
 
                                                g_print ("Design capacity : %d mWsh\n", myData.iCapacity);
 
89
                                                cd_debug ("Design capacity : %d mWsh\n", myData.iCapacity);
88
90
                                        }
89
91
                                        
90
92
                                        gchar *str3 = strchr (str2, ':');
92
94
                                        {
93
95
                                                str3 ++;
94
96
                                                myData.iCapacity = atoi (str3);
95
 
                                                g_print ("Last full capacity : %d mWsh\n", myData.iCapacity);
 
97
                                                cd_debug ("Last full capacity : %d mWsh\n", myData.iCapacity);
96
98
                                        }
97
99
                                }
98
100
                                else
99
101
                                {
100
 
                                        g_print ("cette batterie (%s) n'est pas presente.\n", cBatteryName);
 
102
                                        cd_debug ("cette batterie (%s) n'est pas presente.\n", cBatteryName);
101
103
                                }
102
104
                        }
103
105
                }
112
114
{
113
115
        cd_message ("");
114
116
        
115
 
        if (cairo_dock_bdus_is_enabled ())
 
117
        if (cairo_dock_dbus_is_enabled ())
116
118
        {
117
119
                dbus_proxy_power = cairo_dock_create_new_session_proxy (
118
120
                        "org.freedesktop.PowerManagement",
133
135
                        
134
136
                dbus_g_proxy_connect_signal(dbus_proxy_power, "OnBatteryChanged",
135
137
                        G_CALLBACK(on_battery_changed), NULL, NULL);
136
 
                g_print ("connected to OnBatteryChanged\n");
 
138
                cd_debug ("connected to OnBatteryChanged\n");
137
139
                
138
140
                /*gboolean bBatteryFound = cd_powermanager_find_battery();
139
141
                if (! bBatteryFound)  // on n'a pas trouve de batterie nous-meme.
158
160
                else
159
161
                {
160
162
                        myData.battery_present = TRUE;  // a verifier mais ca parait logique.
161
 
                        g_print ("batterie presente\n");
 
163
                        cd_debug ("batterie presente\n");
162
164
                }*/
163
165
                
164
166
                return TRUE;
190
192
}
191
193
 
192
194
 
193
 
void on_battery_changed(DBusGProxy *proxy, gboolean onBattery, gpointer data)
 
195
static void on_battery_changed(DBusGProxy *proxy, gboolean onBattery, gpointer data)
194
196
{
195
197
        CD_APPLET_ENTER;
196
 
        g_print ("Dbus : battery changed\n");
 
198
        cd_debug ("Dbus : battery changed\n");
197
199
        if (myData.on_battery != onBattery)
198
200
        {
199
201
                update_stats();
224
226
                G_TYPE_INVALID);
225
227
}*/
226
228
 
 
229
 
 
230
static int get_stats(const gchar *dataType)  // code repris de Gnome-power-manager.
 
231
{
 
232
        if (dbus_proxy_stats == NULL)
 
233
                dbus_proxy_stats = cairo_dock_create_new_session_proxy (
 
234
                        "org.freedesktop.PowerManagement",
 
235
                        "/org/freedesktop/PowerManagement/Statistics",
 
236
                        "org.freedesktop.PowerManagement.Statistics"
 
237
                );
 
238
        g_return_val_if_fail (dbus_proxy_stats != NULL, 0);
 
239
        
 
240
        GValueArray *gva;
 
241
        GValue *gv;
 
242
        GPtrArray *ptrarray = NULL;
 
243
        GType g_type_ptrarray;
 
244
        guint i;
 
245
        int x, y=0, col;  /// mettre des nom comprehensibles...
 
246
        gint time = 0;
 
247
 
 
248
        g_type_ptrarray = dbus_g_type_get_collection ("GPtrArray",
 
249
                dbus_g_type_get_struct("GValueArray",
 
250
                        G_TYPE_INT,
 
251
                        G_TYPE_INT,
 
252
                        G_TYPE_INT,
 
253
                        G_TYPE_INVALID));
 
254
        
 
255
        dbus_g_proxy_call (dbus_proxy_stats, "GetData", NULL,
 
256
                G_TYPE_INT, time,
 
257
                G_TYPE_STRING, dataType,
 
258
                G_TYPE_INVALID,
 
259
                g_type_ptrarray, &ptrarray,
 
260
                G_TYPE_INVALID);
 
261
        g_return_val_if_fail (ptrarray != NULL, 0);
 
262
        
 
263
        for (i=0; i< ptrarray->len; i++)  /// il semble que seule la derniere valeur ait de l'interet ....
 
264
        {
 
265
                gva = (GValueArray *) g_ptr_array_index (ptrarray, i);
 
266
                gv = g_value_array_get_nth (gva, 0);
 
267
                x = g_value_get_int (gv);
 
268
                g_value_unset (gv);
 
269
                gv = g_value_array_get_nth (gva, 1);
 
270
                y = g_value_get_int (gv);
 
271
                g_value_unset (gv);
 
272
                gv = g_value_array_get_nth (gva, 2);
 
273
                col = g_value_get_int (gv);
 
274
                g_value_unset (gv);
 
275
                g_value_array_free (gva);
 
276
        }
 
277
        g_ptr_array_free (ptrarray, TRUE);
 
278
        
 
279
        cd_message ("PowerManager [%s]: %d", dataType, y);
 
280
        return y;  /// a quoi servent x et col alors ??
 
281
}
227
282
gboolean update_stats(void)
228
283
{
229
284
        CD_APPLET_ENTER;
258
313
                myData.battery_present = bBatteryPresent;
259
314
                if (! bBatteryPresent)
260
315
                {
261
 
                        g_print ("la batterie a ete enlevee\n");
 
316
                        cd_debug ("la batterie a ete enlevee\n");
262
317
                        g_free (cContent);
263
318
                        update_icon();
264
319
                        CD_APPLET_LEAVE (TRUE);
266
321
                }
267
322
                
268
323
                // on remet a zero l'historique.
269
 
                g_print ("la batterie a ete connectee\n");
 
324
                cd_debug ("la batterie a ete connectee\n");
270
325
                myData.previous_battery_time = 0;
271
326
                myData.previous_battery_charge = 0;
272
327
                
389
444
                {
390
445
                        myData.fDischargeMeanRate = (myData.fDischargeMeanRate * myData.iNbDischargeMeasures + fPresentRate) / (myData.iNbDischargeMeasures + 1);
391
446
                        myData.iNbDischargeMeasures ++;
392
 
                        g_print ("fDischargeMeanRate : %.2f (%d)\n", myData.fDischargeMeanRate, myData.iNbDischargeMeasures);
 
447
                        cd_debug ("fDischargeMeanRate : %.2f (%d)\n", myData.fDischargeMeanRate, myData.iNbDischargeMeasures);
393
448
                        
394
449
                        if (fabs (myData.fLastDischargeMeanRate - myData.fDischargeMeanRate) > 30)
395
450
                        {
403
458
                {
404
459
                        myData.fChargeMeanRate = (myData.fChargeMeanRate * myData.iNbChargeMeasures + fPresentRate) / (myData.iNbChargeMeasures + 1);
405
460
                        myData.iNbChargeMeasures ++;
406
 
                        g_print ("fChargeMeanRate : %.2f (%d)\n", myData.fChargeMeanRate, myData.iNbChargeMeasures);
 
461
                        cd_debug ("fChargeMeanRate : %.2f (%d)\n", myData.fChargeMeanRate, myData.iNbChargeMeasures);
407
462
                        if (fabs (myData.fLastChargeMeanRate - myData.fChargeMeanRate) > 30)
408
463
                        {
409
464
                                myData.fLastChargeMeanRate = myData.fChargeMeanRate;
415
470
        }
416
471
        else if (myData.on_battery || myData.battery_charge < 99.9)
417
472
        {
418
 
                g_print ("no rate, using last know values : %.2f ; %.2f\n", myConfig.fLastDischargeMeanRate, myConfig.fLastChargeMeanRate);
 
473
                cd_debug ("no rate, using last know values : %.2f ; %.2f\n", myConfig.fLastDischargeMeanRate, myConfig.fLastChargeMeanRate);
419
474
                fPresentRate = (myData.on_battery ? myConfig.fLastDischargeMeanRate : myConfig.fLastChargeMeanRate);
420
475
        }
421
476
        
451
506
        //return TRUE;
452
507
}
453
508
 
454
 
int get_stats(gchar *dataType)  // code repris de Gnome-power-manager.
455
 
{
456
 
        if (dbus_proxy_stats == NULL)
457
 
                dbus_proxy_stats = cairo_dock_create_new_session_proxy (
458
 
                        "org.freedesktop.PowerManagement",
459
 
                        "/org/freedesktop/PowerManagement/Statistics",
460
 
                        "org.freedesktop.PowerManagement.Statistics"
461
 
                );
462
 
        g_return_val_if_fail (dbus_proxy_stats != NULL, 0);
463
 
        
464
 
        GValueArray *gva;
465
 
        GValue *gv;
466
 
        GPtrArray *ptrarray = NULL;
467
 
        GType g_type_ptrarray;
468
 
        int i;
469
 
        int x, y, col;  /// mettre des nom comprehensibles...
470
 
        gint time = 0;
471
 
 
472
 
        g_type_ptrarray = dbus_g_type_get_collection ("GPtrArray",
473
 
                dbus_g_type_get_struct("GValueArray",
474
 
                        G_TYPE_INT,
475
 
                        G_TYPE_INT,
476
 
                        G_TYPE_INT,
477
 
                        G_TYPE_INVALID));
478
 
        
479
 
        dbus_g_proxy_call (dbus_proxy_stats, "GetData", NULL,
480
 
                G_TYPE_INT, time,
481
 
                G_TYPE_STRING, dataType,
482
 
                G_TYPE_INVALID,
483
 
                g_type_ptrarray, &ptrarray,
484
 
                G_TYPE_INVALID);
485
 
        g_return_val_if_fail (ptrarray != NULL, 0);
486
 
        
487
 
        for (i=0; i< ptrarray->len; i++)  /// il semble que seule la derniere valeur ait de l'interet ....
488
 
        {
489
 
                gva = (GValueArray *) g_ptr_array_index (ptrarray, i);
490
 
                gv = g_value_array_get_nth (gva, 0);
491
 
                x = g_value_get_int (gv);
492
 
                g_value_unset (gv);
493
 
                gv = g_value_array_get_nth (gva, 1);
494
 
                y = g_value_get_int (gv);
495
 
                g_value_unset (gv);
496
 
                gv = g_value_array_get_nth (gva, 2);
497
 
                col = g_value_get_int (gv);
498
 
                g_value_unset (gv);
499
 
                g_value_array_free (gva);
500
 
        }
501
 
        g_ptr_array_free (ptrarray, TRUE);
502
 
        
503
 
        cd_message ("PowerManager [%s]: %d", dataType, y);
504
 
        return y;  /// a quoi servent x et col alors ??
505
 
}
506
 
 
507
509
/**void detect_battery(void)
508
510
{
509
511
        if (dbus_proxy_battery != NULL)