sfml-audio-fiddle 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/lib/sfml/audio.rb +229 -0
- metadata +44 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: bc0fadf79bec79e3a75cd38a8a3930dc9025587f
|
4
|
+
data.tar.gz: 4b8a052803cca5a16657c60369c0dae89afb1d9b
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: ca403cc6e2ec7e2ae527db8e598ce040ba78160064057f05743697b1c0e45bc2bfa1fb7f105bb7d76eb79c9816c0793d0c2579868ff9d6274142dc07ea2f018c
|
7
|
+
data.tar.gz: a82f4c2620e6e6e41dd1619259a42fa7e748e4fe4e2afec546af0453ce6abcadf2adc86d3fe238cd0d3b2bc2beedf9bf200cb95d2d46ac9450a7cb8c25afc139
|
data/lib/sfml/audio.rb
ADDED
@@ -0,0 +1,229 @@
|
|
1
|
+
require 'fiddle/import'
|
2
|
+
|
3
|
+
|
4
|
+
module SFMLImporter
|
5
|
+
extend Fiddle::Importer
|
6
|
+
dlload 'csfml-audio-2'
|
7
|
+
|
8
|
+
SFSTOPPED = 0
|
9
|
+
SFPAUSED = 1
|
10
|
+
SFPLAYING = 2
|
11
|
+
|
12
|
+
extern 'void* sfSoundBuffer_createFromFile(const char*)'
|
13
|
+
extern 'void* sfSoundBuffer_destroy(void*)'
|
14
|
+
extern 'int sfSoundBuffer_getDuration(void*)'
|
15
|
+
|
16
|
+
extern 'void* sfSound_create()'
|
17
|
+
extern 'void* sfSound_copy(void*)'
|
18
|
+
extern 'void sfSound_destroy(void*)'
|
19
|
+
extern 'void sfSound_setBuffer(void*, const void*)'
|
20
|
+
#extern 'cosnt void* sfSound_getBuffer(const void*)'
|
21
|
+
extern 'void sfSound_stop(void*)'
|
22
|
+
extern 'void sfSound_play(void*)'
|
23
|
+
extern 'void sfSound_pause(void*)'
|
24
|
+
extern 'long long sfSound_getStatus(void*)'
|
25
|
+
extern 'void sfSound_setLoop(void*, int)'
|
26
|
+
extern 'int sfSound_getLoop(void*)'
|
27
|
+
extern 'void sfSound_setPitch(void*, float)'
|
28
|
+
extern 'float sfSound_getPitch(void*)'
|
29
|
+
extern 'void sfSound_setVolume(void*, float)'
|
30
|
+
extern 'float sfSound_getVolume(void*)'
|
31
|
+
extern 'void sfSound_setPlayingOffset(void*, long long)'
|
32
|
+
extern 'long long sfSound_getPlayingOffset(void*)'
|
33
|
+
|
34
|
+
extern 'void* sfMusic_createFromFile(const char*)'
|
35
|
+
extern 'void sfMusic_destroy(void*)'
|
36
|
+
extern 'void sfMusic_setLoop(void*, int)'
|
37
|
+
extern 'int sfMusic_getLoop(void*)'
|
38
|
+
extern 'void sfMusic_play(void*)'
|
39
|
+
extern 'void sfMusic_pause(void*)'
|
40
|
+
extern 'void sfMusic_stop(void*)'
|
41
|
+
extern 'long long sfMusic_getDuration(void*)'
|
42
|
+
extern 'int sfMusic_getStatus(void*)'
|
43
|
+
extern 'void sfMusic_setPlayingOffset(void*, long long)'
|
44
|
+
extern 'long long sfMusic_getPlayingOffset(void*)'
|
45
|
+
extern 'void sfMusic_setPitch(void*, float)'
|
46
|
+
extern 'float sfMusic_getPitch(void*)'
|
47
|
+
extern 'void sfMusic_setVolume(void*, float)'
|
48
|
+
extern 'float sfMusic_getVolume(void*)'
|
49
|
+
end
|
50
|
+
|
51
|
+
|
52
|
+
module SFML
|
53
|
+
end
|
54
|
+
|
55
|
+
|
56
|
+
class SFML::SoundBuffer
|
57
|
+
def self.dtor
|
58
|
+
proc { |id|
|
59
|
+
SFMLImporter.sfSoundBuffer_destroy(id)
|
60
|
+
}
|
61
|
+
end
|
62
|
+
|
63
|
+
attr_reader :buffer
|
64
|
+
def failed? ; @failed end
|
65
|
+
|
66
|
+
def initialize(filename)
|
67
|
+
@buffer = SFMLImporter.sfSoundBuffer_createFromFile(filename)
|
68
|
+
@failed = if @buffer.null?
|
69
|
+
true
|
70
|
+
else
|
71
|
+
ObjectSpace.define_finalizer @buffer, SFML::SoundBuffer.dtor
|
72
|
+
false
|
73
|
+
end
|
74
|
+
end
|
75
|
+
def get_duration
|
76
|
+
SFMLImporter.sfSoundBuffer_getDuration(@buffer) / 1000000.0
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
|
81
|
+
class SFML::Sound
|
82
|
+
def self.dtor
|
83
|
+
proc { |id|
|
84
|
+
SFMLImporter.sfSound_stop(id)
|
85
|
+
SFMLImporter.sfSound_destroy(id)
|
86
|
+
}
|
87
|
+
end
|
88
|
+
|
89
|
+
attr_reader :sound
|
90
|
+
def failed? ; @failed end
|
91
|
+
|
92
|
+
def initialize(buffer=nil)
|
93
|
+
@sound = SFMLImporter.sfSound_create()
|
94
|
+
@failed = @sound.null?
|
95
|
+
if @failed
|
96
|
+
return
|
97
|
+
else
|
98
|
+
@buffer = buffer
|
99
|
+
if buffer
|
100
|
+
SFMLImporter.sfSound_setBuffer(@sound, buffer.buffer)
|
101
|
+
end
|
102
|
+
ObjectSpace.define_finalizer @sound, SFML::Sound.dtor
|
103
|
+
end
|
104
|
+
end
|
105
|
+
def initialize_copy(obj)
|
106
|
+
@sound = SFMLImporter.sfSound_copy(obj.sound)
|
107
|
+
@buffer = obj.buffer
|
108
|
+
end
|
109
|
+
def set_buffer(buffer)
|
110
|
+
@buffer = buffer
|
111
|
+
SFMLImporter.sfSound_setBuffer(@sound, buffer.buffer)
|
112
|
+
end
|
113
|
+
def get_buffer
|
114
|
+
@buffer
|
115
|
+
end
|
116
|
+
def play
|
117
|
+
SFMLImporter.sfSound_play(@sound)
|
118
|
+
end
|
119
|
+
def pause
|
120
|
+
SFMLImporter.sfSound_pause(@sound)
|
121
|
+
end
|
122
|
+
def stop
|
123
|
+
SFMLImporter.sfSound_stop(@sound)
|
124
|
+
end
|
125
|
+
def get_status
|
126
|
+
case SFMLImporter.sfSound_getStatus(@sound)
|
127
|
+
when SFMLImporter::SFSTOPPED
|
128
|
+
:stopped
|
129
|
+
when SFMLImporter::SFPAUSED
|
130
|
+
:paused
|
131
|
+
when SFMLImporter::SFPLAYING
|
132
|
+
:playing
|
133
|
+
end
|
134
|
+
end
|
135
|
+
def set_loop(b)
|
136
|
+
SFMLImporter.sfSound_setLoop(@sound, (b ? 1 : 0))
|
137
|
+
end
|
138
|
+
def get_loop
|
139
|
+
SFMLImporter.sfSound_getLoop(@sound) > 0
|
140
|
+
end
|
141
|
+
def set_pitch(f)
|
142
|
+
SFMLImporter.sfSound_setPitch(@sound, f)
|
143
|
+
end
|
144
|
+
def get_pitch
|
145
|
+
SFMLImporter.sfSound_getPitch(@sound)
|
146
|
+
end
|
147
|
+
def set_volume(f)
|
148
|
+
SFMLImporter.sfSound_setVolume(@sound, f)
|
149
|
+
end
|
150
|
+
def get_volume
|
151
|
+
SFMLImporter.sfSound_getVolume(@sound)
|
152
|
+
end
|
153
|
+
def set_playing_offset(time)
|
154
|
+
SFMLImporter.sfSound_setPlayingOffset(@sound, time * 1000000.0)
|
155
|
+
end
|
156
|
+
def get_playing_offset
|
157
|
+
SFMLImporter.sfSound_getPlayingOffset(@sound) / 1000000.0
|
158
|
+
end
|
159
|
+
end
|
160
|
+
|
161
|
+
class SFML::Music
|
162
|
+
def self.dtor
|
163
|
+
proc { |id|
|
164
|
+
SFMLImporter.sfMusic_stop(id)
|
165
|
+
SFMLImporter.sfMusic_destroy(id)
|
166
|
+
}
|
167
|
+
end
|
168
|
+
|
169
|
+
def failed? ; @failed end
|
170
|
+
|
171
|
+
def initialize(filename)
|
172
|
+
@music = SFMLImporter.sfMusic_createFromFile(filename)
|
173
|
+
@failed = if @music.null?
|
174
|
+
true
|
175
|
+
else
|
176
|
+
ObjectSpace.define_finalizer @music, SFML::Music.dtor
|
177
|
+
false
|
178
|
+
end
|
179
|
+
end
|
180
|
+
|
181
|
+
def set_loop(b)
|
182
|
+
SFMLImporter.sfMusic_setLoop(@music, (b ? 1 : 0))
|
183
|
+
end
|
184
|
+
def get_loop
|
185
|
+
SFMLImporter.sfMusic_getLoop > 0
|
186
|
+
end
|
187
|
+
def play
|
188
|
+
SFMLImporter.sfMusic_play(@music)
|
189
|
+
end
|
190
|
+
def pause
|
191
|
+
SFMLImporter.sfMusic_pause(@music)
|
192
|
+
end
|
193
|
+
def stop
|
194
|
+
SFMLImporter.sfMusic_stop(@music)
|
195
|
+
end
|
196
|
+
def get_duration
|
197
|
+
SFMLImporter.sfMusic_getDuration(@music) / 1000000.0
|
198
|
+
end
|
199
|
+
def get_status
|
200
|
+
r = SFMLImporter.sfMusic_getStatus(@music)
|
201
|
+
case r
|
202
|
+
when SFMLImporter::SFSTOPPED
|
203
|
+
:stopped
|
204
|
+
when SFMLImporter::SFPAUSED
|
205
|
+
:paused
|
206
|
+
when SFMLImporter::SFPLAYING
|
207
|
+
:playing
|
208
|
+
end
|
209
|
+
end
|
210
|
+
def set_playing_offset(time)
|
211
|
+
SFMLImporter.sfMusic_setPlayingOffset(@music, time * 1000000.0)
|
212
|
+
end
|
213
|
+
def get_playing_offset
|
214
|
+
SFMLImporter.sfMusic_getPlayingOffset(@music) / 1000000.0
|
215
|
+
end
|
216
|
+
def set_pitch(f)
|
217
|
+
SFMLImporter.sfMusic_setPitch(@music, f)
|
218
|
+
end
|
219
|
+
def get_pitch
|
220
|
+
SFMLImporter.sfMusic_getPitch(@music)
|
221
|
+
end
|
222
|
+
def set_volume(f)
|
223
|
+
SFMLImporter.sfMusic_setVolume(@music, f)
|
224
|
+
end
|
225
|
+
def get_volume
|
226
|
+
SFMLImporter.sfMusic_getVolume(@music)
|
227
|
+
end
|
228
|
+
end
|
229
|
+
|
metadata
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: sfml-audio-fiddle
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- birthggd
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-07-31 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: Ruby binding for SFML2 Audio
|
14
|
+
email:
|
15
|
+
executables: []
|
16
|
+
extensions: []
|
17
|
+
extra_rdoc_files: []
|
18
|
+
files:
|
19
|
+
- lib/sfml/audio.rb
|
20
|
+
homepage: https://github.com/bggd/sfml-audio-fiddle
|
21
|
+
licenses:
|
22
|
+
- Boost Software License Version 1.0
|
23
|
+
metadata: {}
|
24
|
+
post_install_message:
|
25
|
+
rdoc_options: []
|
26
|
+
require_paths:
|
27
|
+
- lib
|
28
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
29
|
+
requirements:
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
34
|
+
requirements:
|
35
|
+
- - ">="
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
requirements: []
|
39
|
+
rubyforge_project:
|
40
|
+
rubygems_version: 2.4.5
|
41
|
+
signing_key:
|
42
|
+
specification_version: 4
|
43
|
+
summary: Ruby binding for SFML2 Audio
|
44
|
+
test_files: []
|