class SectionStatus
Attributes
msg[RW]
msg_rect[RW]
Public Class Methods
new(x, y, w, h, col)
click to toggle source
Calls superclass method
ViewBase::new
# File lib/akane_sound/class.section_status.rb, line 3 def initialize(x, y, w, h, col) @txt_color = Util.to_col_ar(@@config[:text_color]) @vol_rect @vol_texture @vol_text_rect @timer_passed_texture @timer_passed_rect @timer_total_texture @timer_total_rect @progress_bar_rect @shuffle_on = @@font_bold.render_blended('[SHUFFLE]', @txt_color) @shuffle_off = @@font.render_blended('[SHUFFLE]', @txt_color) @repeat_on = @@font_bold.render_blended('[REPEAT]', @txt_color) @repeat_off = @@font.render_blended('[REPEAT]', @txt_color) @next_on = @@font_bold.render_blended('[NEXT]', @txt_color) @next_off = @@font.render_blended('[NEXT]', @txt_color) super set_view set_status("Welcome to Akane") update_volume_rect update_volume_texture update_data end
Public Instance Methods
draw()
click to toggle source
Calls superclass method
ViewBase#draw
# File lib/akane_sound/class.section_status.rb, line 85 def draw super @@renderer.viewport = @view_base @@renderer.fill_rect(SDL2::Rect[0, 0, @view_base.w, @view_base.h]) # draw status stuff @@renderer.viewport = @view @@renderer.copy(@@renderer.create_texture_from(@@msg), nil, @@msg_rect) # draw volume @@renderer.copy(@vol_texture, nil, @vol_text_rect) if @@sound.volume < 101 @@renderer.draw_color = [@@config[:volume_bar_color][:red], @@config[:volume_bar_color][:green], @@config[:volume_bar_color][:blue], @@config[:volume_bar_color][:alpha]] else @@renderer.draw_color = [@@config[:volume_bar_max_color][:red], @@config[:volume_bar_max_color][:green], @@config[:volume_bar_max_color][:blue], @@config[:volume_bar_max_color][:alpha]] end @@renderer.fill_rect(@vol_rect) # draw timers @@renderer.copy(@timer_passed_texture, nil, @timer_passed_rect) @@renderer.copy(@timer_total_texture, nil, @timer_total_rect) # draw track info # sampling rate @@renderer.copy(@sampling_rate_texture, nil, @sampling_rate_rect) # bps @@renderer.copy(@bps_texture, nil, @bps_rect) # draw flags if @@sound.mode[:shuffle] @@renderer.copy(@@renderer.create_texture_from(@shuffle_on), nil, SDL2::Rect[210, 18, @shuffle_on.w, @shuffle_on.h]) else @@renderer.copy(@@renderer.create_texture_from(@shuffle_off), nil, SDL2::Rect[210, 18, @shuffle_off.w, @shuffle_off.h]) end if @@sound.mode[:repeat] @@renderer.copy(@@renderer.create_texture_from(@repeat_on), nil, SDL2::Rect[210+@shuffle_on.w+2, 18, @repeat_on.w, @repeat_on.h]) else @@renderer.copy(@@renderer.create_texture_from(@repeat_off), nil, SDL2::Rect[210+@shuffle_on.w+2, 18, @repeat_off.w, @repeat_off.h]) end if @@sound.mode[:next] @@renderer.copy(@@renderer.create_texture_from(@next_on), nil, SDL2::Rect[210+@shuffle_on.w+2+@repeat_on.w+2, 18, @next_on.w, @next_on.h]) else @@renderer.copy(@@renderer.create_texture_from(@next_off), nil, SDL2::Rect[210+@shuffle_on.w+2+@repeat_on.w+2, 18, @next_off.w, @next_off.h]) end # draw progess bar @@renderer.draw_color = [@@config[:prog_bar_color][:red], @@config[:prog_bar_color][:green], @@config[:prog_bar_color][:blue], @@config[:prog_bar_color][:alpha]] @@renderer.fill_rect(@progress_bar_rect) end
update()
click to toggle source
# File lib/akane_sound/class.section_status.rb, line 27 def update if @@inp.pause == 1 @@sound.play_track end if @@inp.stop == 1 @@sound.stop_track end if @@inp.vol_down == 1 || @@inp.vol_down >= 20 @@sound.volume -= 1 if @@inp.vol_down == 22 @@inp.vol_down = 20 end @@sound.volume = 0 if @@sound.volume < 0 update_volume_rect update_volume_texture @@sound.set_vol end if @@inp.vol_up == 1 || @@inp.vol_up >= 20 @@sound.volume += 1 if @@inp.vol_up == 22 @@inp.vol_up = 20 end @@sound.volume = 128 if @@sound.volume > 128 update_volume_rect update_volume_texture @@sound.set_vol end if @@inp.toggle_shuffle == 1 @@sound.toggle_shuffle end if @@inp.toggle_repeat == 1 @@sound.toggle_repeat end if @@inp.toggle_next == 1 @@sound.toggle_next end if @@sound.state != "not playing" if @@inp.next == 1 @@sound.skip("next", 1) end if @@inp.prev == 1 @@sound.skip("previous", 1) end end update_timers update_progress_bar update_data end
update_size(x, y, w, h)
click to toggle source
Calls superclass method
ViewBase#update_size
# File lib/akane_sound/class.section_status.rb, line 76 def update_size(x, y, w, h) super set_view update_volume_rect update_volume_texture update_progress_bar update_data end
Private Instance Methods
set_view()
click to toggle source
# File lib/akane_sound/class.section_status.rb, line 155 def set_view @view = SDL2::Rect[@view_base.x+8, @view_base.y+8, @view_base.w-16, @view_base.h-16] end
update_data()
click to toggle source
# File lib/akane_sound/class.section_status.rb, line 167 def update_data if @@sound.state == "playing" || @@sound.state == "paused" track = @@sound.get_track str1 = "["+track[:sample]+"Hz]" str2 = "["+(track[:bps]/1000).to_s+" kbps]" else str1 = "[]" str2 = "[]" end sur = @@font.render_blended(str1, @txt_color) @sampling_rate_texture = @@renderer.create_texture_from(sur) @sampling_rate_rect = SDL2::Rect[84, 18, sur.w, sur.h] sur.destroy sur = @@font.render_blended(str2, @txt_color) @bps_texture = @@renderer.create_texture_from(sur) @bps_rect = SDL2::Rect[148, 18, sur.w, sur.h] sur.destroy end
update_progress_bar()
click to toggle source
# File lib/akane_sound/class.section_status.rb, line 162 def update_progress_bar @progress_bar_rect = SDL2::Rect[0, 36, @view.w * @@sound.progress / 100, 20] end
update_timers()
click to toggle source
# File lib/akane_sound/class.section_status.rb, line 186 def update_timers if @@sound.state == "playing" || @@sound.state == "paused" str1 = "["+Util.ms_to_time_str(@@sound.tstmp_play_cur)+"]" track = @@sound.get_track str2 = "["+track[:pl_time]+"]" else str1 = "[]" str2 = "[]" end sur = @@font.render_blended(str1, @txt_color) @timer_passed_texture = @@renderer.create_texture_from(sur) @timer_passed_rect = SDL2::Rect[0, 18, sur.w, sur.h] sur.destroy sur = @@font.render_blended(str2, @txt_color) @timer_total_texture = @@renderer.create_texture_from(sur) @timer_total_rect = SDL2::Rect[42, 18, sur.w, sur.h] sur.destroy end
update_volume_rect()
click to toggle source
# File lib/akane_sound/class.section_status.rb, line 218 def update_volume_rect if @@msg_rect @vol_rect = SDL2::Rect[@view.w-128, 18, @@sound.volume, @@msg_rect.h] end end
update_volume_texture()
click to toggle source
# File lib/akane_sound/class.section_status.rb, line 205 def update_volume_texture int = @@sound.volume str = int.to_s str.prepend('0') if int < 100 str.prepend('0') if int < 10 str.prepend('Volume: ') str += "%" sur = @@font.render_blended(str, @txt_color) @vol_texture = @@renderer.create_texture_from(sur) @vol_text_rect = SDL2::Rect[@view.w-212, 18, sur.w, sur.h] sur.destroy end