12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697(*
* uPower.ml
* ---------
* Copyright : (c) 2010, Jeremie Dimino <jeremie@dimino.org>
* Licence : BSD3
*
* This file is a part of obus, an ocaml implementation of D-Bus.
*)openLwtincludeOBus_peer.Privateletgeneral_error="org.freedesktop.UPower.GeneralError"letdaemon()=let%lwtbus=OBus_bus.system()inreturn(OBus_peer.makebus"org.freedesktop.UPower")openUPower_interfaces.Org_freedesktop_UPowerletproxydaemon=OBus_proxy.makedaemon["org";"freedesktop";"UPower"]letenumerate_devicesdaemon=let%lwt(context,devices)=OBus_method.call_with_contextm_EnumerateDevices(proxydaemon)()inreturn(List.map(funpath->UPower_device.of_proxy(OBus_proxy.make(OBus_context.sendercontext)path))devices)letdevice_addeddaemon=OBus_signal.map_with_context(funcontextdevice->UPower_device.of_proxy(OBus_proxy.make(OBus_context.sendercontext)(OBus_path.of_stringdevice)))(OBus_signal.makes_DeviceAdded(proxydaemon))letdevice_removeddaemon=OBus_signal.map_with_context(funcontextdevice->UPower_device.of_proxy(OBus_proxy.make(OBus_context.sendercontext)(OBus_path.of_stringdevice)))(OBus_signal.makes_DeviceRemoved(proxydaemon))letdevice_changeddaemon=OBus_signal.map_with_context(funcontextdevice->UPower_device.of_proxy(OBus_proxy.make(OBus_context.sendercontext)(OBus_path.of_stringdevice)))(OBus_signal.makes_DeviceChanged(proxydaemon))letchangeddaemon=OBus_signal.makes_Changed(proxydaemon)letsleepingdaemon=OBus_signal.makes_Sleeping(proxydaemon)letresumingdaemon=OBus_signal.makes_Resuming(proxydaemon)letabout_to_sleepdaemon=OBus_method.callm_AboutToSleep(proxydaemon)()letsuspenddaemon=OBus_method.callm_Suspend(proxydaemon)()letsuspend_alloweddaemon=OBus_method.callm_SuspendAllowed(proxydaemon)()lethibernatedaemon=OBus_method.callm_Hibernate(proxydaemon)()lethibernate_alloweddaemon=OBus_method.callm_HibernateAllowed(proxydaemon)()letdaemon_versiondaemon=OBus_property.make~monitor:UPower_monitor.monitorp_DaemonVersion(proxydaemon)letcan_suspenddaemon=OBus_property.make~monitor:UPower_monitor.monitorp_CanSuspend(proxydaemon)letcan_hibernatedaemon=OBus_property.make~monitor:UPower_monitor.monitorp_CanHibernate(proxydaemon)leton_batterydaemon=OBus_property.make~monitor:UPower_monitor.monitorp_OnBattery(proxydaemon)leton_low_batterydaemon=OBus_property.make~monitor:UPower_monitor.monitorp_OnLowBattery(proxydaemon)letlid_is_closeddaemon=OBus_property.make~monitor:UPower_monitor.monitorp_LidIsClosed(proxydaemon)letlid_is_presentdaemon=OBus_property.make~monitor:UPower_monitor.monitorp_LidIsPresent(proxydaemon)letpropertiesdaemon=OBus_property.group~monitor:UPower_monitor.monitor(proxydaemon)interface