sfml-audio-fiddle 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/sfml/audio.rb +229 -0
  3. 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: []