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