Class: SFML::Music
- Inherits:
-
Object
- Object
- SFML::Music
- Defined in:
- lib/sfml/audio/music.rb
Overview
Class Method Summary collapse
Instance Method Summary collapse
- #attenuation ⇒ Object
- #attenuation=(value) ⇒ Object
- #duration ⇒ Object
- #looping=(value) ⇒ Object
-
#looping? ⇒ Boolean
Cached on the Ruby side; see Sound#looping? for the why.
- #min_distance ⇒ Object
- #min_distance=(value) ⇒ Object
- #pause ⇒ Object
- #paused? ⇒ Boolean
- #pitch ⇒ Object
- #pitch=(value) ⇒ Object
- #play ⇒ Object
- #playing? ⇒ Boolean
-
#position ⇒ Object
3D positional audio — see SFML::Sound for the why.
- #position=(value) ⇒ Object
- #relative_to_listener=(value) ⇒ Object
- #relative_to_listener? ⇒ Boolean
- #status ⇒ Object
- #stop ⇒ Object
- #stopped? ⇒ Boolean
- #volume ⇒ Object
- #volume=(value) ⇒ Object
Class Method Details
.load(path, **opts) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/sfml/audio/music.rb', line 8 def self.load(path, **opts) ptr = C::Audio.sfMusic_createFromFile(path.to_s) raise Error, "Could not load music from #{path.inspect}" if ptr.null? m = allocate m.send(:_take_ownership, ptr) m.instance_variable_set(:@looping, false) m.volume = opts[:volume] if opts.key?(:volume) m.pitch = opts[:pitch] if opts.key?(:pitch) m.looping = opts[:looping] if opts.key?(:looping) m end |
Instance Method Details
#attenuation ⇒ Object
64 |
# File 'lib/sfml/audio/music.rb', line 64 def attenuation = C::Audio.sfMusic_getAttenuation(@handle) |
#attenuation=(value) ⇒ Object
66 67 68 |
# File 'lib/sfml/audio/music.rb', line 66 def attenuation=(value) C::Audio.sfMusic_setAttenuation(@handle, value.to_f) end |
#duration ⇒ Object
30 |
# File 'lib/sfml/audio/music.rb', line 30 def duration = Time.from_native(C::Audio.sfMusic_getDuration(@handle)) |
#looping=(value) ⇒ Object
37 38 39 40 |
# File 'lib/sfml/audio/music.rb', line 37 def looping=(value) @looping = value ? true : false C::Audio.sfMusic_setLooping(@handle, @looping) end |
#looping? ⇒ Boolean
Cached on the Ruby side; see Sound#looping? for the why.
33 34 35 |
# File 'lib/sfml/audio/music.rb', line 33 def looping? @looping end |
#min_distance ⇒ Object
70 |
# File 'lib/sfml/audio/music.rb', line 70 def min_distance = C::Audio.sfMusic_getMinDistance(@handle) |
#min_distance=(value) ⇒ Object
72 73 74 |
# File 'lib/sfml/audio/music.rb', line 72 def min_distance=(value) C::Audio.sfMusic_setMinDistance(@handle, value.to_f) end |
#pause ⇒ Object
22 |
# File 'lib/sfml/audio/music.rb', line 22 def pause = C::Audio.sfMusic_pause(@handle) |
#paused? ⇒ Boolean
27 |
# File 'lib/sfml/audio/music.rb', line 27 def paused? = status == :paused |
#pitch ⇒ Object
48 |
# File 'lib/sfml/audio/music.rb', line 48 def pitch = C::Audio.sfMusic_getPitch(@handle) |
#pitch=(value) ⇒ Object
50 51 52 |
# File 'lib/sfml/audio/music.rb', line 50 def pitch=(value) C::Audio.sfMusic_setPitch(@handle, value.to_f) end |
#play ⇒ Object
21 |
# File 'lib/sfml/audio/music.rb', line 21 def play = C::Audio.sfMusic_play(@handle) |
#playing? ⇒ Boolean
26 |
# File 'lib/sfml/audio/music.rb', line 26 def = status == :playing |
#position ⇒ Object
3D positional audio — see SFML::Sound for the why.
55 56 57 |
# File 'lib/sfml/audio/music.rb', line 55 def position Vector3.from_native(C::Audio.sfMusic_getPosition(@handle)) end |
#position=(value) ⇒ Object
59 60 61 62 |
# File 'lib/sfml/audio/music.rb', line 59 def position=(value) vec = value.is_a?(Vector3) ? value : Vector3.new(*value) C::Audio.sfMusic_setPosition(@handle, vec.to_native_f) end |
#relative_to_listener=(value) ⇒ Object
78 79 80 |
# File 'lib/sfml/audio/music.rb', line 78 def relative_to_listener=(value) C::Audio.sfMusic_setRelativeToListener(@handle, value ? true : false) end |
#relative_to_listener? ⇒ Boolean
76 |
# File 'lib/sfml/audio/music.rb', line 76 def relative_to_listener? = C::Audio.sfMusic_isRelativeToListener(@handle) |
#status ⇒ Object
25 |
# File 'lib/sfml/audio/music.rb', line 25 def status = C::Audio::STATUSES[C::Audio.sfMusic_getStatus(@handle)] |
#stop ⇒ Object
23 |
# File 'lib/sfml/audio/music.rb', line 23 def stop = C::Audio.sfMusic_stop(@handle) |
#stopped? ⇒ Boolean
28 |
# File 'lib/sfml/audio/music.rb', line 28 def stopped? = status == :stopped |