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