- GET_STRING_BINARY_DATA_ALLOCA (sound, soundext, soundextlen);
- if (esd_play_sound_data (soundext, soundextlen, vol))
- return Qnil;
+ TO_EXTERNAL_FORMAT (LISP_STRING, sound, ALLOCA, (soundext, soundextlen),
+ Qbinary);
+
+ /* #### ESD uses alarm(). But why should we also stop SIGIO? */
+ stop_interrupts ();
+ succes = esd_play_sound_data (soundext, soundextlen, vol);
+ start_interrupts ();
+ QUIT;
+ if(succes)
+ return Qnil;