SDL

Форк
0
/
testpower.c 
93 строки · 2.2 Кб
1
/*
2
  Copyright (C) 1997-2024 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 <SDL3/SDL.h>
15
#include <SDL3/SDL_main.h>
16
#include <SDL3/SDL_test.h>
17

18
static void
19
report_power(void)
20
{
21
    int seconds, percent;
22
    const SDL_PowerState state = SDL_GetPowerInfo(&seconds, &percent);
23
    const char *statestr = NULL;
24

25
    SDL_Log("SDL-reported power info...\n");
26
    switch (state) {
27
    case SDL_POWERSTATE_UNKNOWN:
28
        statestr = "Unknown";
29
        break;
30
    case SDL_POWERSTATE_ON_BATTERY:
31
        statestr = "On battery";
32
        break;
33
    case SDL_POWERSTATE_NO_BATTERY:
34
        statestr = "No battery";
35
        break;
36
    case SDL_POWERSTATE_CHARGING:
37
        statestr = "Charging";
38
        break;
39
    case SDL_POWERSTATE_CHARGED:
40
        statestr = "Charged";
41
        break;
42
    default:
43
        statestr = "!!API ERROR!!";
44
        break;
45
    }
46

47
    SDL_Log("State: %s\n", statestr);
48

49
    if (percent == -1) {
50
        SDL_Log("Percent left: unknown\n");
51
    } else {
52
        SDL_Log("Percent left: %d%%\n", percent);
53
    }
54

55
    if (seconds == -1) {
56
        SDL_Log("Time left: unknown\n");
57
    } else {
58
        SDL_Log("Time left: %d minutes, %d seconds\n", seconds / 60, seconds % 60);
59
    }
60
}
61

62
int main(int argc, char *argv[])
63
{
64
    SDLTest_CommonState *state;
65

66
    /* Initialize test framework */
67
    state = SDLTest_CommonCreateState(argv, 0);
68
    if (!state) {
69
        return 1;
70
    }
71

72
    /* Enable standard application logging */
73
    SDL_SetLogPriority(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_INFO);
74

75
    /* Parse commandline */
76
    if (!SDLTest_CommonDefaultArgs(state, argc, argv)) {
77
        return 1;
78
    }
79

80
    if (SDL_Init(0) < 0) {
81
        SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "SDL_Init() failed: %s\n", SDL_GetError());
82
        return 1;
83
    }
84

85
    report_power();
86

87
    SDL_Quit();
88
    SDLTest_CommonDestroyState(state);
89

90
    return 0;
91
}
92

93
/* end of testpower.c ... */
94

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.