diff options
author | Michael 'Mickey' Lauer <mickey@vanille-media.de> | 2011-05-10 20:06:27 +0200 |
---|---|---|
committer | Michael 'Mickey' Lauer <mickey@vanille-media.de> | 2011-05-10 20:06:27 +0200 |
commit | c078f4fb384cdf959fb37af7f194947f48df3543 (patch) | |
tree | b795b4fa4b366f5c454f4b586890a9032e614dd5 | |
parent | 2314e200ab656f1dbad3132ca0799e3af29fa6c6 (diff) | |
download | cornucopia-c078f4fb384cdf959fb37af7f194947f48df3543.tar.gz cornucopia-c078f4fb384cdf959fb37af7f194947f48df3543.tar.bz2 cornucopia-c078f4fb384cdf959fb37af7f194947f48df3543.zip |
fsodeviced: kernel26_powersupply: add support for reading capacity from charge_{now|full} nodes,
which apparantly some of the newer modules are using
-rw-r--r-- | fsodeviced/src/plugins/kernel26_powersupply/plugin.vala | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/fsodeviced/src/plugins/kernel26_powersupply/plugin.vala b/fsodeviced/src/plugins/kernel26_powersupply/plugin.vala index 4814e3c1..9baa149f 100644 --- a/fsodeviced/src/plugins/kernel26_powersupply/plugin.vala +++ b/fsodeviced/src/plugins/kernel26_powersupply/plugin.vala @@ -125,12 +125,18 @@ class PowerSupply : FreeSmartphone.Device.PowerSupply, message( "capacity node not available, using energy_full and energy_now" ); #endif - // fall back to energy_full and energy_now - var energy_full = FsoFramework.FileHandling.read( "%s/energy_full".printf( sysfsnode ) ); - var energy_now = FsoFramework.FileHandling.read( "%s/energy_now".printf( sysfsnode ) ); + // then, try energy_full and energy_now + var energy_full = FsoFramework.FileHandling.readIfPresent( "%s/energy_full".printf( sysfsnode ) ); + var energy_now = FsoFramework.FileHandling.readIfPresent( "%s/energy_now".printf( sysfsnode ) ); if ( energy_full != "" && energy_now != "" ) return (int) ( ( energy_now.to_double() / energy_full.to_double() ) * 100.0 ); + // as a last resort, try charge_full and charge_now + var charge_full = FsoFramework.FileHandling.readIfPresent( "%s/charge_full".printf( sysfsnode ) ); + var charge_now = FsoFramework.FileHandling.readIfPresent( "%s/charge_now".printf( sysfsnode ) ); + if ( charge_full != "" && charge_now != "" ) + return (int) ( ( charge_now.to_double() / charge_full.to_double() ) * 100.0 ); + return -1; } @@ -259,7 +265,6 @@ class AggregatePowerSupply : FreeSmartphone.Device.PowerSupply, FsoFramework.Abs logger.warning( "Not present; treating it like an AC adapter" ); typ = "ac"; } - return; } var status = "unknown"; |