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

SDL_GetPowerInfo

現在の電源の詳細を得る

構文

SDL_PowerState SDL_GetPowerInfo(int* secs, int* pct)

引数

secsバッテリーの残り秒数. NULLを渡すと無視できる. -1のとき値を特定できない, またはバッテリーで動作していない
pct残バッテリーの割合(0〜100). バッテリーの残り秒数. NULLを渡すと無視できる. -1のとき値を特定できない, またはバッテリーで動作していない

戻り値

バッテリーの状態を戻す. 値はSDL_PowerStateを参照すること. 状態がわからない, またはバッテリーで動作していない場合は, 両方の引数に-1が代入される.

サンプルコード

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);
    }
}

詳細

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

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

SDL Wikiへのリンク

SDL_GetPowerInfo - SDL Wiki