Mercurial > projects > dstep
view dstep/coreservices/osservices/Power.d @ 11:07194b026fa4
Added bindings to a couple of frameworks, new license + some other things
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Sat, 01 Aug 2009 15:03:28 +0200 |
parents | |
children |
line wrap: on
line source
/** * Copyright: Copyright (c) 2009 Jacob Carlborg. * Authors: Jacob Carlborg * Version: Initial created: Jul 22, 2009 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0) */ module dstep.coreservices.osservices.Power; //import dstep.AvailabilityMacros; import dstep.coreservices.carboncore.MacErrors; import dstep.coreservices.carboncore.MacTypes; import dstep.coreservices.carboncore.MixedMode; import dstep.coreservices.carboncore.Multiprocessing; import dstep.internal.Types; import dstep.internal.Version; alias SleepQRec* SleepQRecPtr; alias SleepQProcPtr SleepQUPP; alias uint RegEntryID; alias PowerHandlerProcPtr PowerHandlerUPP; alias HDSpindownProcPtr HDSpindownUPP; alias PMgrStateChangeProcPtr PMgrStateChangeUPP; enum { kSleepRequest = 1, kSleepDemand = 2, kSleepWakeUp = 3, kSleepRevoke = 4, kSleepUnlock = 4, kSleepDeny = 5, kSleepNow = 6, kDozeDemand = 7, kDozeWakeUp = 8, kDozeRequest = 9, kEnterStandby = 10, kEnterRun = 11, kSuspendRequest = 12, kSuspendDemand = 13, kSuspendRevoke = 14, kSuspendWakeUp = 15, kGetPowerLevel = 16, kSetPowerLevel = 17, kDeviceInitiatedWake = 18, kWakeToDoze = 19, kDozeToFullWakeUp = 20, kGetPowerInfo = 21, kGetWakeOnNetInfo = 22, kSuspendWakeToDoze = 23, kEnterIdle = 24, kStillIdle = 25, kExitIdle = 26 } enum { noCalls = 1, noRequest = 2, slpQType = 16, sleepQType = 16 } enum { OverallAct = 0, UsrActivity = 1, NetActivity = 2, HDActivity = 3, IdleActivity = 4 } struct SleepQRec { SleepQRecPtr sleepQLink; short sleepQType; SleepQUPP sleepQProc; short sleepQFlags; } static if (!D_LP64) { struct HDQueueElement { HDQueueElement* hdQLink; short hdQType; short hdFlags; HDSpindownUPP hdProc; c_long hdUser; } struct PMgrQueueElement { PMgrQueueElement* pmQLink; short pmQType; short pmFlags; c_long pmNotifyBits; PMgrStateChangeUPP pmProc; c_long pmUser; } struct BatteryTimeRec { c_ulong expectedBatteryTime; c_ulong minimumBatteryTime; c_ulong maximumBatteryTime; c_ulong timeUntilCharged; } struct WakeupTime { c_ulong wakeTime; bool wakeEnabled; byte filler; } struct StartupTime { c_ulong startTime; bool startEnabled; byte filler; } /++ +/ } extern (C) { alias int function (int, SleepQRecPtr) SleepQProcPtr; alias void function (HDQueueElement*) HDSpindownProcPtr; alias int function (uint, void*, uint, RegEntryID*) PowerHandlerProcPtr; alias void function (PMgrQueueElement*, int) PMgrStateChangeProcPtr; } extern (C) { SleepQUPP NewSleepQUPP (SleepQProcPtr userRoutine); void DisposeSleepQUPP (SleepQUPP userUPP); int InvokeSleepQUPP (int message, SleepQRecPtr qRecPtr, SleepQUPP userUPP); int GetCPUSpeed (); void SleepQInstall (SleepQRecPtr qRecPtr); void SleepQRemove (SleepQRecPtr qRecPtr); short MaximumProcessorSpeed (); short MinimumProcessorSpeed (); short CurrentProcessorSpeed (); short BatteryCount (); short UpdateSystemActivity (ubyte activity); HDSpindownUPP NewHDSpindownUPP (HDSpindownProcPtr userRoutine); PMgrStateChangeUPP NewPMgrStateChangeUPP (PMgrStateChangeProcPtr userRoutine); void DisposeHDSpindownUPP (HDSpindownUPP userUPP); void DisposePMgrStateChangeUPP (PMgrStateChangeUPP userUPP); void InvokeHDSpindownUPP (HDQueueElement* theElement, HDSpindownUPP userUPP); void InvokePMgrStateChangeUPP (PMgrQueueElement* theElement, int stateBits, PMgrStateChangeUPP userUPP); }