Class: RbSDL2::PowerInfo

Inherits:
Object
  • Object
show all
Defined in:
lib/rb_sdl2/power_info.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializePowerInfo

Returns a new instance of PowerInfo.



3
4
5
6
7
# File 'lib/rb_sdl2/power_info.rb', line 3

def initialize
  @battery_time = ::FFI::MemoryPointer.new(:int)
  @battery_percentage = ::FFI::MemoryPointer.new(:int)
  update
end

Instance Attribute Details

#stateObject (readonly)

Returns the value of attribute state.



37
38
39
# File 'lib/rb_sdl2/power_info.rb', line 37

def state
  @state
end

Instance Method Details

#battery?Boolean

バッテリーが搭載されているか?

Returns:

  • (Boolean)


18
19
20
# File 'lib/rb_sdl2/power_info.rb', line 18

def battery? = [::SDL::POWERSTATE_CHARGING,
::SDL::POWERSTATE_CHARGED,
::SDL::POWERSTATE_ON_BATTERY].include?(state)

#battery_percentageObject

バッテリーの残り容量(パーセント)を戻します。 残り容量を特定できない, またはバッテリーで動作していない場合 nil を戻します。



11
# File 'lib/rb_sdl2/power_info.rb', line 11

def battery_percentage = (num = @battery_percentage.read_int) >= 0 ? num : nil

#battery_timeObject

バッテリーの残り時間(秒)を戻します。 残り時間を特定できない、またはバッテリーで動作していない場合は nil を戻します。



15
# File 'lib/rb_sdl2/power_info.rb', line 15

def battery_time = (num = @battery_time.read_int) >= 0 ? num : nil

#charged?Boolean

電源あり、バッテリー満充電

Returns:

  • (Boolean)


23
# File 'lib/rb_sdl2/power_info.rb', line 23

def charged? = ::SDL::POWERSTATE_CHARGED == state

#charging?Boolean

電源あり、バッテリー充電中

Returns:

  • (Boolean)


26
# File 'lib/rb_sdl2/power_info.rb', line 26

def charging? = ::SDL::POWERSTATE_CHARGING == state

#no_battery?Boolean

電源あり、バッテリー非搭載(デスクトップパソコンなど)

Returns:

  • (Boolean)


29
# File 'lib/rb_sdl2/power_info.rb', line 29

def no_battery? = ::SDL::POWERSTATE_NO_BATTERY == state

#on_battery?Boolean

電源なし、バッテリー使用中

Returns:

  • (Boolean)


32
# File 'lib/rb_sdl2/power_info.rb', line 32

def on_battery? = ::SDL::POWERSTATE_ON_BATTERY == state

#plugged_in?Boolean

電源に接続されているか?

Returns:

  • (Boolean)


35
# File 'lib/rb_sdl2/power_info.rb', line 35

def plugged_in? = !on_battery?

#unknown?Boolean

電源、バッテリーの情報なし

Returns:

  • (Boolean)


40
# File 'lib/rb_sdl2/power_info.rb', line 40

def unknown? = ::SDL::POWERSTATE_UNKNOWN == state

#updateObject



42
43
44
45
# File 'lib/rb_sdl2/power_info.rb', line 42

def update
  @state = ::SDL.GetPowerInfo(@battery_time, @battery_percentage)
  self
end