win32-sound 0.5.1 → 0.6.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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: f4bdc665ebd9e6b35140e5e48801e271060720c5
4
+ data.tar.gz: a22dd1421d0be46d57584ecc444bbdfdd6351400
5
+ SHA512:
6
+ metadata.gz: 7af84db083e9b8839e8ceedcbba0f03c2f79c4024fd0b221ffb019d6e7982a2b8b54700b26d1d57b1b97c38774236e216bc5b952acb4361dd7d36e848babdd26
7
+ data.tar.gz: 819948dce743c4e8126e704c0f5fd317a9488a24a700a619423cbe2a42fa3e6850a03715279817a9d2c1f88230c9687bdabf95b8c6552c525bd5ba47f1143bb1
data/CHANGES CHANGED
@@ -1,66 +1,73 @@
1
- == 0.5.1 - 10-Apr-2013
2
- * Updated HANDLE prototype in underlying FFI code. This affects
3
- 64 bit versions of Ruby.
4
-
5
- == 0.5.0 - 28-Jun-2012
6
- * Now uses FFI instead of win32-api. This means it works with JRuby, too.
7
- * Corresponding updates to the tests, Rakefile, gemspec, etc.
8
- * Removed the Sound::Error exception class. If an underlying FFI function
9
- fails then a SystemCallError (Errno::XXX) is raised instead.
10
-
11
- == 0.4.3 - 21-May-2011
12
- * Refactored Rakefile, removing an old gem install task and adding a
13
- default task and a clean task.
14
- * Altered the gemspec, including a platform change to 'universal-win32', and
15
- removed a deprecated specification method.
16
-
17
- == 0.4.2 - 6-Aug-2009
18
- * Changed the license to Artistic 2.0.
19
- * Updated to use the Windows::Sound module from the windows-pr library.
20
- * Fixed the Sound::ALIAS value. It was wrongly set to SND_ALIAS_ID.
21
- * Several gemspec updates, including the license and description.
22
- * The Sound.get_wave_volume method is now a true alias.
23
- * Renamed the test file to test_win32_sound.rb.
24
- * Renamed the example file to example_win32_sound.rb to avoid any possible
25
- confusion with actual test files.
26
- * Added the 'example' rake task.
27
-
28
- == 0.4.1 - 27-Jul-2007
29
- * Changed SoundError to Sound::Error.
30
- * Added a Rakefile with tasks for installation and testing.
31
- * Removed the install.rb file. Installation is now handled via a rake task.
32
- * Documentation updates.
33
-
34
- == 0.4.0 - 26-Feb-2006
35
- * Now pure Ruby only.
36
- * Documentation updates and reorganization.
37
- * Added a gemspec.
38
- * Minor test suite changes.
39
-
40
- == 0.3.0 - 29-May-2005
41
- * Changed the Sound.volume= method (which didn't work) to
42
- Sound.set_wave_volume because it takes up to two values and only affects
43
- the wave volume, not the master volume.
44
- * Renamed the Sound.volume method to Sound.wave_volume.
45
- * Fixed a bug in the Sound.wave_volume method.
46
- * Created the Sound.get_wave_volume alias for Sound.wave_volume.
47
- * Fixed the Sound.set_wave_volume method.
48
- * Test adjustments and additions to reflect API changes.
49
- * Now Unicode friendly.
50
- * Removed the sound.rd file. The sound.txt file is now rdoc friendly.
51
-
52
- == 0.2.1 - 1-Mar-2005
53
- * Moved the 'examples' directory to the toplevel directory
54
- * Made the CHANGES and README files rdoc friendly
55
- * Some cleanup in sound.h.
56
-
57
- == 0.2.0 - 13-Jul-2004
58
- * Moved the SoundError class under the Win32 module namespace
59
- * Replaced the deprecated STR2CSTR() function with the StringValuePtr()
60
- function. This means that as of version 0.2.0, this package requires
61
- Ruby 1.8.0 or later.
62
- * Moved the test.rb script to doc/examples
63
- * Added the README file (oops).
64
-
65
- == 0.1.0 - 14-Feb-2004
66
- * Initial release
1
+ == 0.6.0 - 30-Jul-2014
2
+ * Added the play_freq method. This lets you play a frequency for a
3
+ specified duration at a given volume. Big thanks go out to Dominic
4
+ Muller for the patch.
5
+ * Reorganization of FFI related code into their own files.
6
+ * Updated the gem:create and gem:install rake tasks.
7
+
8
+ == 0.5.1 - 10-Apr-2013
9
+ * Updated HANDLE prototype in underlying FFI code. This affects
10
+ 64 bit versions of Ruby.
11
+
12
+ == 0.5.0 - 28-Jun-2012
13
+ * Now uses FFI instead of win32-api. This means it works with JRuby, too.
14
+ * Corresponding updates to the tests, Rakefile, gemspec, etc.
15
+ * Removed the Sound::Error exception class. If an underlying FFI function
16
+ fails then a SystemCallError (Errno::XXX) is raised instead.
17
+
18
+ == 0.4.3 - 21-May-2011
19
+ * Refactored Rakefile, removing an old gem install task and adding a
20
+ default task and a clean task.
21
+ * Altered the gemspec, including a platform change to 'universal-win32', and
22
+ removed a deprecated specification method.
23
+
24
+ == 0.4.2 - 6-Aug-2009
25
+ * Changed the license to Artistic 2.0.
26
+ * Updated to use the Windows::Sound module from the windows-pr library.
27
+ * Fixed the Sound::ALIAS value. It was wrongly set to SND_ALIAS_ID.
28
+ * Several gemspec updates, including the license and description.
29
+ * The Sound.get_wave_volume method is now a true alias.
30
+ * Renamed the test file to test_win32_sound.rb.
31
+ * Renamed the example file to example_win32_sound.rb to avoid any possible
32
+ confusion with actual test files.
33
+ * Added the 'example' rake task.
34
+
35
+ == 0.4.1 - 27-Jul-2007
36
+ * Changed SoundError to Sound::Error.
37
+ * Added a Rakefile with tasks for installation and testing.
38
+ * Removed the install.rb file. Installation is now handled via a rake task.
39
+ * Documentation updates.
40
+
41
+ == 0.4.0 - 26-Feb-2006
42
+ * Now pure Ruby only.
43
+ * Documentation updates and reorganization.
44
+ * Added a gemspec.
45
+ * Minor test suite changes.
46
+
47
+ == 0.3.0 - 29-May-2005
48
+ * Changed the Sound.volume= method (which didn't work) to
49
+ Sound.set_wave_volume because it takes up to two values and only affects
50
+ the wave volume, not the master volume.
51
+ * Renamed the Sound.volume method to Sound.wave_volume.
52
+ * Fixed a bug in the Sound.wave_volume method.
53
+ * Created the Sound.get_wave_volume alias for Sound.wave_volume.
54
+ * Fixed the Sound.set_wave_volume method.
55
+ * Test adjustments and additions to reflect API changes.
56
+ * Now Unicode friendly.
57
+ * Removed the sound.rd file. The sound.txt file is now rdoc friendly.
58
+
59
+ == 0.2.1 - 1-Mar-2005
60
+ * Moved the 'examples' directory to the toplevel directory
61
+ * Made the CHANGES and README files rdoc friendly
62
+ * Some cleanup in sound.h.
63
+
64
+ == 0.2.0 - 13-Jul-2004
65
+ * Moved the SoundError class under the Win32 module namespace
66
+ * Replaced the deprecated STR2CSTR() function with the StringValuePtr()
67
+ function. This means that as of version 0.2.0, this package requires
68
+ Ruby 1.8.0 or later.
69
+ * Moved the test.rb script to doc/examples
70
+ * Added the README file (oops).
71
+
72
+ == 0.1.0 - 14-Feb-2004
73
+ * Initial release
data/MANIFEST CHANGED
@@ -1,8 +1,10 @@
1
- * MANIFEST
2
- * CHANGES
3
- * README
4
- * Rakefile
5
- * win32-sound.gempsec
6
- * examples/sound_test.rb
7
- * lib/win32/sound.rb
8
- * test/tc_sound.rb
1
+ * MANIFEST
2
+ * CHANGES
3
+ * README
4
+ * Rakefile
5
+ * win32-sound.gempsec
6
+ * examples/sound_test.rb
7
+ * lib/win32/sound.rb
8
+ * lib/win32/windows/functions.rb
9
+ * lib/win32/windows/structs.rb
10
+ * test/test_win32_sound.rb
data/README CHANGED
@@ -1,56 +1,57 @@
1
- = Description
2
- A library for playing and controlling sounds on MS Windows.
3
-
4
- = Prerequisites
5
- * ffi
6
- * test-unit 2 (Development only)
7
-
8
- = Installation
9
- gem install win32-sound
10
-
11
- = Synopsis
12
- require 'win32/sound'
13
- include Win32
14
-
15
- # Play a wav file
16
- Sound.play("somefile.wav")
17
-
18
- # Play a system sound
19
- Sound.play("SystemAsterisk",Sound::ALIAS)
20
-
21
- # Get the current volume of the waveform-audio output device.
22
- p Sound.volume.join(", ") # left channel, right channel
23
-
24
- = Acknowledgements
25
- API ideas derived (or not) from Perl's Win32::Sound module and Python's
26
- winsound package.
27
-
28
- = Known Bugs
29
- None that I'm aware of. Please report any bugs on the project page
30
- at https://github.com/djberg96/win32-sound.
31
-
32
- = Future Plans
33
- Add ability to retrieve information about WAV files.
34
- Add MIDI support?
35
-
36
- = Developer's Notes
37
- The MessageBeep() function, which the Python "winsound" module contains,
38
- is intentionally omitted here. I felt it was redundant, because you can
39
- achieve the same effect with something like this:
40
-
41
- Sound.play("SystemAsterisk", Sound::ALIAS).
42
-
43
- = License
44
- Artistic 2.0
45
-
46
- = Copyright
47
- (C) 2004-2013, Daniel J. Berger, All Rights Reserved
48
-
49
- = Warranty
50
- This package is provided "as is" and without any express or
51
- implied warranties, including, without limitation, the implied
52
- warranties of merchantability and fitness for a particular purpose.
53
-
54
- = Author(s)
55
- Daniel Berger
56
- Park Heesob
1
+ = Description
2
+ A library for playing and controlling sounds on MS Windows.
3
+
4
+ = Prerequisites
5
+ * ffi
6
+ * test-unit 2 (Development only)
7
+
8
+ = Installation
9
+ gem install win32-sound
10
+
11
+ = Synopsis
12
+ require 'win32/sound'
13
+ include Win32
14
+
15
+ # Play a wav file
16
+ Sound.play("somefile.wav")
17
+
18
+ # Play a system sound
19
+ Sound.play("SystemAsterisk",Sound::ALIAS)
20
+
21
+ # Get the current volume of the waveform-audio output device.
22
+ p Sound.volume.join(", ") # left channel, right channel
23
+
24
+ = Acknowledgements
25
+ API ideas derived (or not) from Perl's Win32::Sound module and Python's
26
+ winsound package.
27
+
28
+ = Known Bugs
29
+ None that I'm aware of. Please report any bugs on the project page
30
+ at https://github.com/djberg96/win32-sound.
31
+
32
+ = Future Plans
33
+ Add ability to retrieve information about WAV files.
34
+ Add MIDI support?
35
+
36
+ = Developer's Notes
37
+ The MessageBeep() function, which the Python "winsound" module contains,
38
+ is intentionally omitted here. I felt it was redundant, because you can
39
+ achieve the same effect with something like this:
40
+
41
+ Sound.play("SystemAsterisk", Sound::ALIAS).
42
+
43
+ = License
44
+ Artistic 2.0
45
+
46
+ = Copyright
47
+ (C) 2004-2014, Daniel J. Berger, All Rights Reserved
48
+
49
+ = Warranty
50
+ This package is provided "as is" and without any express or
51
+ implied warranties, including, without limitation, the implied
52
+ warranties of merchantability and fitness for a particular purpose.
53
+
54
+ = Author(s)
55
+ Daniel Berger
56
+ Park Heesob
57
+ Dominic Muller
data/Rakefile CHANGED
@@ -1,31 +1,36 @@
1
- require 'rake'
2
- require 'rake/testtask'
3
- require 'rake/clean'
4
-
5
- CLEAN.include("**/*.gem", "**/*.rbc")
6
-
7
- namespace :gem do
8
- desc "Create the win32-sound gem"
9
- task :create => [:clean] do
10
- spec = eval(IO.read("win32-sound.gemspec"))
11
- Gem::Builder.new(spec).build
12
- end
13
-
14
- desc "Install the win32-sound library"
15
- task :install => [:create] do
16
- file = Dir["*.gem"].first
17
- sh "gem install #{file}"
18
- end
19
- end
20
-
21
- desc 'Run the example program'
22
- task :example do
23
- ruby '-Ilib examples\example_win32_sound.rb'
24
- end
25
-
26
- Rake::TestTask.new do |t|
27
- t.warning = true
28
- t.verbose = true
29
- end
30
-
31
- task :default => :test
1
+ require 'rake'
2
+ require 'rake/testtask'
3
+ require 'rake/clean'
4
+
5
+ CLEAN.include("**/*.gem", "**/*.rbc")
6
+
7
+ namespace :gem do
8
+ desc "Create the win32-sound gem"
9
+ task :create => [:clean] do
10
+ spec = eval(IO.read("win32-sound.gemspec"))
11
+ if Gem::VERSION.to_f < 2.0
12
+ Gem::Builder.new(spec).build
13
+ else
14
+ require 'rubygems/package'
15
+ Gem::Package.build(spec)
16
+ end
17
+ end
18
+
19
+ desc "Install the win32-sound library"
20
+ task :install => [:create] do
21
+ file = Dir["*.gem"].first
22
+ sh "gem install -l #{file}"
23
+ end
24
+ end
25
+
26
+ desc 'Run the example program'
27
+ task :example do
28
+ ruby '-Ilib examples\example_win32_sound.rb'
29
+ end
30
+
31
+ Rake::TestTask.new do |t|
32
+ t.warning = true
33
+ t.verbose = true
34
+ end
35
+
36
+ task :default => :test
@@ -1,48 +1,56 @@
1
- #######################################################################
2
- # example_win32_sound.rb (win32-sound)
3
- #
4
- # A example script to demonstrate the win32-sound library and for
5
- # general futzing. You can run this via the 'rake example' task.
6
- #
7
- # Modify as you see fit.
8
- #######################################################################
9
- require 'win32/sound'
10
- include Win32
11
-
12
- wav = "c:\\windows\\media\\chimes.wav"
13
-
14
- puts "VERSION: " + Sound::VERSION
15
- #puts "Devices: " + Sound.devices.join(", ")
16
-
17
- #Sound.volume = [77,128] # my personal settings
18
-
19
- orig_left, orig_right = Sound.wave_volume
20
- puts "Volume was: #{orig_left}, #{orig_right}"
21
-
22
- #Sound.volume = 140
23
- #puts "Volume is now: " + Sound.volume.join(", ")
24
-
25
- #Sound.volume = [orig_left,orig_right]
26
- #puts "Volume is now: " + Sound.volume.join(", ")
27
-
28
- puts "Playing 'SystemAsterisk' sound"
29
- sleep 1
30
- Sound.play("SystemAsterisk",Sound::ALIAS)
31
-
32
- puts "Playing 'chimes' sound once"
33
- sleep 1
34
- Sound.play(wav)
35
-
36
- puts "Playing 'chimes' sound in a loop for 3 seconds"
37
- sleep 1
38
- Sound.play(wav,Sound::ASYNC|Sound::LOOP)
39
- sleep 3
40
- Sound.stop
41
-
42
- puts "Playing default sound"
43
- sleep 1
44
- Sound.play("Foofoo", Sound::ALIAS)
45
-
46
- puts "Playing a beep"
47
- sleep 1
48
- Sound.beep(500, 10000)
1
+ #######################################################################
2
+ # example_win32_sound.rb (win32-sound)
3
+ #
4
+ # A example script to demonstrate the win32-sound library and for
5
+ # general futzing. You can run this via the 'rake example' task.
6
+ #
7
+ # Modify as you see fit.
8
+ #######################################################################
9
+ require 'win32/sound'
10
+ include Win32
11
+
12
+ wav = "c:\\windows\\media\\chimes.wav"
13
+
14
+ puts "VERSION: " + Sound::VERSION
15
+ #puts "Devices: " + Sound.devices.join(", ")
16
+
17
+ #Sound.volume = [77,128] # my personal settings
18
+
19
+ orig_left, orig_right = Sound.wave_volume
20
+ puts "Volume was: #{orig_left}, #{orig_right}"
21
+
22
+ #Sound.volume = 140
23
+ #puts "Volume is now: " + Sound.volume.join(", ")
24
+
25
+ #Sound.volume = [orig_left,orig_right]
26
+ #puts "Volume is now: " + Sound.volume.join(", ")
27
+
28
+ puts "Playing 'SystemAsterisk' sound"
29
+ sleep 1
30
+ Sound.play("SystemAsterisk",Sound::ALIAS)
31
+
32
+ puts "Playing 'chimes' sound once"
33
+ sleep 1
34
+ Sound.play(wav)
35
+
36
+ puts "Playing 'chimes' sound in a loop for 3 seconds"
37
+ sleep 1
38
+ Sound.play(wav,Sound::ASYNC|Sound::LOOP)
39
+ sleep 3
40
+ Sound.stop
41
+
42
+ puts "Playing default sound"
43
+ sleep 1
44
+ Sound.play("Foofoo", Sound::ALIAS)
45
+
46
+ puts "Playing a beep"
47
+ sleep 1
48
+ Sound.beep(500, 2000)
49
+
50
+ puts "Playing multiple frequencies simultaneously"
51
+ sleep 1
52
+ threads = []
53
+ [440, 660].each do |freq|
54
+ threads << Thread.new { Sound.play_freq(freq) }
55
+ end
56
+ threads.each { |th| th.join }