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.
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: []