[Vm-dev] [patch] SqueakVM doesn't build on OSS systems

Aleksej Saushev asau at inbox.ru
Tue Jan 25 02:45:47 UTC 2011


  Hello!

First, you can't build SqueakVM on NetBSD because it links to
non-existing library (OSS isn't ALSA).

Second, audio devices are /dev/audio* and /dev/sound* rather than /dev/dsp*.

Third, sometimes default devices are /dev/audio1 and /dev/sound1.
E.g. on my rather modern (2008) laptop.

Here're patches I use, usage example:
squeak -vm-sound-OSS -playback /dev/audio1 Squeak4.0-basic.image


Use proper OSS library.
Use proper audio device.

--- unix/vm-sound-OSS/config.cmake.orig	2009-08-26 22:44:21.000000000 +0400
+++ unix/vm-sound-OSS/config.cmake	2010-01-24 06:10:44.000000000 +0300
@@ -1,2 +1,2 @@
-PLUGIN_REQUIRE_INCLUDE (ALSA_SOUNDLIB alsa/asoundlib.h)
-PLUGIN_REQUIRE_LIBRARY (ASOUND asound)
+PLUGIN_REQUIRE_LIBRARY (ASOUND ossaudio)
+PLUGIN_DEFINITIONS (-DDEVOSSAUDIO=\"${DEVOSSAUDIO}\")

Allow customization of audio devices.

--- unix/vm-sound-OSS/sqUnixSoundOSS.c.orig	2008-09-02 22:49:45.000000000 +0400
+++ unix/vm-sound-OSS/sqUnixSoundOSS.c	2010-02-10 23:13:27.000000000 +0300
@@ -1172,6 +1172,10 @@
 static int   sound_parseArgument(int argc, char **argv)
 {
   if (!strcmp(argv[0], "-nomixer")) return noSoundMixer= 1;
+  else if (argv[1]) {
+	if (!strcmp(argv[0], "-playback")) {dev_dsp.path = argv[1]; return 2;}
+	if (!strcmp(argv[0], "-capture")) {dev_dsp1.path = argv[1]; return 2;}
+  }
   return 0;
 }
 
@@ -1179,6 +1183,8 @@
 {
   printf("\nOSS <option>s:\n");
   printf("  -nomixer              disable mixer (volume) adjustment\n");
+  printf("  -playback <name>      play to the named sound device (default: %s)\n", dev_dsp.path);
+  printf("  -capture <name>       record from the named sound device (default: %s)\n", dev_dsp1.path);
 }
 
 static void  sound_printUsageNotes(void)




-- 
HE CE3OH...


More information about the Vm-dev mailing list