testpower.c (1953B)
1/* 2 Copyright (C) 1997-2014 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 17static void 18report_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 63int 64main(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 ... */