mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-14 15:30:29 -08:00
* sound.c [WINDOWSNT] (SOUND_WARNING): New macro.
(do_play_sound): Use it. Don't pass a hardcoded buffer size to mci functions, use sizeof.
This commit is contained in:
parent
f19fea978e
commit
24f0147080
2 changed files with 44 additions and 23 deletions
|
|
@ -1,3 +1,9 @@
|
|||
2009-01-12 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* sound.c [WINDOWSNT] (SOUND_WARNING): New macro.
|
||||
(do_play_sound): Use it. Don't pass a hardcoded buffer size to mci
|
||||
functions, use sizeof.
|
||||
|
||||
2009-01-12 Martin Rudalics <rudalics@gmx.at>
|
||||
|
||||
* keyboard.c (read_char): Fix case where last_nonmenu_event
|
||||
|
|
|
|||
61
src/sound.c
61
src/sound.c
|
|
@ -1215,7 +1215,7 @@ alsa_write (sd, buffer, nbytes)
|
|||
{
|
||||
snd_pcm_uframes_t frames = (nbytes - nwritten)/fact;
|
||||
if (frames == 0) break;
|
||||
|
||||
|
||||
err = snd_pcm_writei (p->handle, buffer + nwritten, frames);
|
||||
if (err < 0)
|
||||
{
|
||||
|
|
@ -1301,6 +1301,16 @@ alsa_init (sd)
|
|||
|
||||
/* BEGIN: Windows specific functions */
|
||||
|
||||
#define SOUND_WARNING(fun, error, text) \
|
||||
{ \
|
||||
char buf[1024]; \
|
||||
char err_string[MAXERRORLENGTH]; \
|
||||
fun (error, err_string, sizeof (err_string)); \
|
||||
snprintf (buf, sizeof (buf), "%s\nError: %s", \
|
||||
text, err_string); \
|
||||
sound_warning (buf); \
|
||||
}
|
||||
|
||||
static int
|
||||
do_play_sound (psz_file, ui_volume)
|
||||
const char *psz_file;
|
||||
|
|
@ -1314,16 +1324,17 @@ do_play_sound (psz_file, ui_volume)
|
|||
unsigned long ui_volume_org = 0;
|
||||
BOOL b_reset_volume = FALSE;
|
||||
|
||||
memset (sz_cmd_buf, 0, sizeof(sz_cmd_buf));
|
||||
memset (sz_ret_buf, 0, sizeof(sz_ret_buf));
|
||||
memset (sz_cmd_buf, 0, sizeof (sz_cmd_buf));
|
||||
memset (sz_ret_buf, 0, sizeof (sz_ret_buf));
|
||||
sprintf (sz_cmd_buf,
|
||||
"open \"%s\" alias GNUEmacs_PlaySound_Device wait",
|
||||
psz_file);
|
||||
mci_error = mciSendString (sz_cmd_buf, sz_ret_buf, 520, NULL);
|
||||
mci_error = mciSendString (sz_cmd_buf, sz_ret_buf, sizeof (sz_ret_buf), NULL);
|
||||
if (mci_error != 0)
|
||||
{
|
||||
sound_warning ("The open mciSendString command failed to open\n"
|
||||
"the specified sound file");
|
||||
SOUND_WARNING (mciGetErrorString, mci_error,
|
||||
"The open mciSendString command failed to open "
|
||||
"the specified sound file.");
|
||||
i_result = (int) mci_error;
|
||||
return i_result;
|
||||
}
|
||||
|
|
@ -1334,42 +1345,46 @@ do_play_sound (psz_file, ui_volume)
|
|||
{
|
||||
b_reset_volume = TRUE;
|
||||
mm_result = waveOutSetVolume ((HWAVEOUT) WAVE_MAPPER, ui_volume);
|
||||
if ( mm_result != MMSYSERR_NOERROR)
|
||||
if (mm_result != MMSYSERR_NOERROR)
|
||||
{
|
||||
sound_warning ("waveOutSetVolume failed to set the volume level\n"
|
||||
"of the WAVE_MAPPER device.\n"
|
||||
"As a result, the user selected volume level will\n"
|
||||
"not be used.");
|
||||
SOUND_WARNING (waveOutGetErrorText, mm_result,
|
||||
"waveOutSetVolume failed to set the volume level "
|
||||
"of the WAVE_MAPPER device.\n"
|
||||
"As a result, the user selected volume level will "
|
||||
"not be used.");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
sound_warning ("waveOutGetVolume failed to obtain the original\n"
|
||||
SOUND_WARNING (waveOutGetErrorText, mm_result,
|
||||
"waveOutGetVolume failed to obtain the original "
|
||||
"volume level of the WAVE_MAPPER device.\n"
|
||||
"As a result, the user selected volume level will\n"
|
||||
"As a result, the user selected volume level will "
|
||||
"not be used.");
|
||||
}
|
||||
}
|
||||
memset (sz_cmd_buf, 0, sizeof(sz_cmd_buf));
|
||||
memset (sz_ret_buf, 0, sizeof(sz_ret_buf));
|
||||
memset (sz_cmd_buf, 0, sizeof (sz_cmd_buf));
|
||||
memset (sz_ret_buf, 0, sizeof (sz_ret_buf));
|
||||
strcpy (sz_cmd_buf, "play GNUEmacs_PlaySound_Device wait");
|
||||
mci_error = mciSendString (sz_cmd_buf, sz_ret_buf, 520, NULL);
|
||||
mci_error = mciSendString (sz_cmd_buf, sz_ret_buf, sizeof (sz_ret_buf), NULL);
|
||||
if (mci_error != 0)
|
||||
{
|
||||
sound_warning ("The play mciSendString command failed to play the\n"
|
||||
"opened sound file.");
|
||||
SOUND_WARNING (mciGetErrorString, mci_error,
|
||||
"The play mciSendString command failed to play the "
|
||||
"opened sound file.");
|
||||
i_result = (int) mci_error;
|
||||
}
|
||||
memset (sz_cmd_buf, 0, sizeof(sz_cmd_buf));
|
||||
memset (sz_ret_buf, 0, sizeof(sz_ret_buf));
|
||||
memset (sz_cmd_buf, 0, sizeof (sz_cmd_buf));
|
||||
memset (sz_ret_buf, 0, sizeof (sz_ret_buf));
|
||||
strcpy (sz_cmd_buf, "close GNUEmacs_PlaySound_Device wait");
|
||||
mci_error = mciSendString (sz_cmd_buf, sz_ret_buf, 520, NULL);
|
||||
mci_error = mciSendString (sz_cmd_buf, sz_ret_buf, sizeof (sz_ret_buf), NULL);
|
||||
if (b_reset_volume == TRUE)
|
||||
{
|
||||
mm_result=waveOutSetVolume ((HWAVEOUT) WAVE_MAPPER, ui_volume_org);
|
||||
mm_result = waveOutSetVolume ((HWAVEOUT) WAVE_MAPPER, ui_volume_org);
|
||||
if (mm_result != MMSYSERR_NOERROR)
|
||||
{
|
||||
sound_warning ("waveOutSetVolume failed to reset the original volume\n"
|
||||
SOUND_WARNING (waveOutGetErrorText, mm_result,
|
||||
"waveOutSetVolume failed to reset the original volume "
|
||||
"level of the WAVE_MAPPER device.");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue