~registry/dolphin-emu/triforce

« back to all changes in this revision

Viewing changes to Externals/wxWidgets3/src/msw/power.cpp

  • Committer: Sérgio Benjamim
  • Date: 2015-02-13 05:54:40 UTC
  • Revision ID: sergio_br2@yahoo.com.br-20150213055440-ey2rt3sjpy27km78
Dolphin Triforce branch from code.google, commit b957980 (4.0-315).

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
///////////////////////////////////////////////////////////////////////////////
 
2
// Name:        src/msw/power.cpp
 
3
// Purpose:     power management functions for MSW
 
4
// Author:      Vadim Zeitlin
 
5
// Modified by:
 
6
// Created:     2006-05-27
 
7
// Copyright:   (c) 2006 Vadim Zeitlin <vadim@wxwindows.org>
 
8
// Licence:     wxWindows licence
 
9
///////////////////////////////////////////////////////////////////////////////
 
10
 
 
11
// ============================================================================
 
12
// declarations
 
13
// ============================================================================
 
14
 
 
15
// ----------------------------------------------------------------------------
 
16
// headers
 
17
// ----------------------------------------------------------------------------
 
18
 
 
19
// for compilers that support precompilation, includes "wx.h".
 
20
#include "wx/wxprec.h"
 
21
 
 
22
#ifdef __BORLANDC__
 
23
    #pragma hdrstop
 
24
#endif
 
25
 
 
26
#ifndef WX_PRECOMP
 
27
#endif //WX_PRECOMP
 
28
 
 
29
#include "wx/power.h"
 
30
#include "wx/msw/private.h"
 
31
 
 
32
#if !defined(__WINCE_STANDARDSDK__)
 
33
 
 
34
#ifdef __WXWINCE__
 
35
    typedef SYSTEM_POWER_STATUS_EX SYSTEM_POWER_STATUS;
 
36
    BOOL GetSystemPowerStatus(SYSTEM_POWER_STATUS *status)
 
37
    {
 
38
        return GetSystemPowerStatusEx(status, TRUE);
 
39
    }
 
40
#endif
 
41
 
 
42
// ----------------------------------------------------------------------------
 
43
// helper functions
 
44
// ----------------------------------------------------------------------------
 
45
 
 
46
static inline bool wxGetPowerStatus(SYSTEM_POWER_STATUS *sps)
 
47
{
 
48
    if ( !::GetSystemPowerStatus(sps) )
 
49
    {
 
50
        wxLogLastError(wxT("GetSystemPowerStatus()"));
 
51
        return false;
 
52
    }
 
53
 
 
54
    return true;
 
55
}
 
56
 
 
57
#endif
 
58
 
 
59
// ============================================================================
 
60
// implementation
 
61
// ============================================================================
 
62
 
 
63
wxPowerType wxGetPowerType()
 
64
{
 
65
#if !defined(__WINCE_STANDARDSDK__)
 
66
    SYSTEM_POWER_STATUS sps;
 
67
    if ( wxGetPowerStatus(&sps) )
 
68
    {
 
69
        switch ( sps.ACLineStatus )
 
70
        {
 
71
            case 0:
 
72
                return wxPOWER_BATTERY;
 
73
 
 
74
            case 1:
 
75
                return wxPOWER_SOCKET;
 
76
 
 
77
            default:
 
78
                wxLogDebug(wxT("Unknown ACLineStatus=%u"), sps.ACLineStatus);
 
79
            case 255:
 
80
                break;
 
81
        }
 
82
    }
 
83
#endif
 
84
 
 
85
    return wxPOWER_UNKNOWN;
 
86
}
 
87
 
 
88
wxBatteryState wxGetBatteryState()
 
89
{
 
90
#if !defined(__WINCE_STANDARDSDK__)
 
91
    SYSTEM_POWER_STATUS sps;
 
92
    if ( wxGetPowerStatus(&sps) )
 
93
    {
 
94
        // there can be other bits set in the flag field ("charging" and "no
 
95
        // battery"), extract only those which we need here
 
96
        switch ( sps.BatteryFlag & 7 )
 
97
        {
 
98
            case 1:
 
99
                return wxBATTERY_NORMAL_STATE;
 
100
 
 
101
            case 2:
 
102
                return wxBATTERY_LOW_STATE;
 
103
 
 
104
            case 3:
 
105
                return wxBATTERY_CRITICAL_STATE;
 
106
        }
 
107
    }
 
108
#endif
 
109
 
 
110
    return wxBATTERY_UNKNOWN_STATE;
 
111
}