1 /*
2 Copyright (C) 1997-2020 Sam Lantinga <slouken@libsdl.org>
3
4 This software is provided 'as-is', without any express or implied
5 warranty. In no event will the authors be held liable for any damages
6 arising from the use of this software.
7
8 Permission is granted to anyone to use this software for any purpose,
9 including commercial applications, and to alter it and redistribute it
10 freely.
11 */
12 /* Simple test of power subsystem. */
13
14 #include <stdio.h>
15 #include "SDL.h"
16
17 static void
report_power(void)18 report_power(void)
19 {
20 int seconds, percent;
21 const SDL_PowerState state = SDL_GetPowerInfo(&seconds, &percent);
22 char *statestr = NULL;
23
24 SDL_Log("SDL-reported power info...\n");
25 switch (state) {
26 case SDL_POWERSTATE_UNKNOWN:
27 statestr = "Unknown";
28 break;
29 case SDL_POWERSTATE_ON_BATTERY:
30 statestr = "On battery";
31 break;
32 case SDL_POWERSTATE_NO_BATTERY:
33 statestr = "No battery";
34 break;
35 case SDL_POWERSTATE_CHARGING:
36 statestr = "Charging";
37 break;
38 case SDL_POWERSTATE_CHARGED:
39 statestr = "Charged";
40 break;
41 default:
42 statestr = "!!API ERROR!!";
43 break;
44 }
45
46 SDL_Log("State: %s\n", statestr);
47
48 if (percent == -1) {
49 SDL_Log("Percent left: unknown\n");
50 } else {
51 SDL_Log("Percent left: %d%%\n", percent);
52 }
53
54 if (seconds == -1) {
55 SDL_Log("Time left: unknown\n");
56 } else {
57 SDL_Log("Time left: %d minutes, %d seconds\n", (int) (seconds / 60),
58 (int) (seconds % 60));
59 }
60 }
61
62
63 int
main(int argc,char * argv[])64 main(int argc, char *argv[])
65 {
66 /* Enable standard application logging */
67 SDL_LogSetPriority(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_INFO);
68
69 if (SDL_Init(0) == -1) {
70 SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "SDL_Init() failed: %s\n", SDL_GetError());
71 return 1;
72 }
73
74 report_power();
75
76 SDL_Quit();
77 return 0;
78 }
79
80 /* end of testpower.c ... */
81