[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