目次 - SDL 3.0 API(機能別) - 電源管理 - SDL_GetPowerInfo

SDL_GetPowerInfo

現在の電源の詳細を得る

バージョン

SDL3/SDL_power.h

構文

SDL_PowerState SDL_GetPowerInfo(int *seconds, int *percent);

引数

secondsバッテリーの残り秒数の代入先へのポインタ. NULLを渡すと無視できる. -1のとき値を特定できない, またはバッテリーで動作していない
percent残バッテリーの割合(0~100)の代入先へのポインタ. バッテリーの残り秒数. NULLを渡すと無視できる. -1のとき値を特定できない, またはバッテリーで動作していない

戻り値

(SDL_PowerState) バッテリーの状態を戻す. 失敗のときSDL_POWERSTATE_ERRORを戻す. SDL_GetError()を呼んで詳細を知ることができる.

詳細

バッテリー状態を絶対的な真実ととらえてはならない. バッテリー(特に衰えたバッテリー)は不安定で, 報告された値はハードウェアの報告を元にした推定量でしかない. 古くなったバッテリーは報告よりも早く電力を失ったり, 20%ほど残っていると報告されても完全に失われているなどということは珍しいことではない.

バッテリーの状態は常に変化している. 電源状態を得るときは, 定期的にこの関数を呼ぶ必要がある. そして数秒の間安定するまでは変化を無視したほうがよいかもしれない.

環境によっては, バッテリーの残りパーセントか残り時間のどちらかで, 両方を得られない場合もある.

バージョン

SDL 3.2.0以降

サンプルコード

int secs, pct;
if (SDL_GetPowerInfo(&secs, &pct) == SDL_POWERSTATE_ON_BATTERY) {
    printf("バッテリーで動作中: ");
    if (secs == -1) {
        printf("(残り時間 不明)¥n");
    } else {
        printf("(残り時間 %d 秒)¥n", secs);
    }

    if (pct == -1) {
        printf("(残バッテリー率 不明)¥n");
    } else {
        printf("(残バッテリー率 %d パーセント)¥n", pct);
    }
}

SDL Wikiへのリンク

SDL_GetPowerInfo - SDL Wiki