cscg22-gearboy

CSCG 2022 Challenge 'Gearboy'
git clone https://git.sinitax.com/sinitax/cscg22-gearboy
Log | Files | Refs | sfeed.txt

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 ... */