Update of /cvsroot/alsa/alsa-lib/src/pcm In directory sc8-pr-cvs1:/tmp/cvs-serv5369/src/pcm
Modified Files: pcm.c pcm_plugin.c pcm_rate.c Log Message: Added snd_pcm_type_name() Fixed rate conversion plugin (SIGSEGV) - rounding problem Index: pcm.c =================================================================== RCS file: /cvsroot/alsa/alsa-lib/src/pcm/pcm.c,v retrieving revision 1.249 retrieving revision 1.250 diff -u -r1.249 -r1.250 --- pcm.c 5 Mar 2003 19:56:57 -0000 1.249 +++ pcm.c 8 Mar 2003 16:35:19 -0000 1.250 @@ -1217,6 +1217,7 @@ } #ifndef DOC_HIDDEN +#define PCMTYPE(v) [SND_PCM_TYPE_##v] = #v #define STATE(v) [SND_PCM_STATE_##v] = #v #define STREAM(v) [SND_PCM_STREAM_##v] = #v #define READY(v) [SND_PCM_READY_##v] = #v @@ -1233,6 +1234,7 @@ #define FORMATD(v, d) [SND_PCM_FORMAT_##v] = d #define SUBFORMATD(v, d) [SND_PCM_SUBFORMAT_##v] = d + static const char *snd_pcm_stream_names[] = { STREAM(PLAYBACK), STREAM(CAPTURE), @@ -1339,6 +1341,33 @@ FORMATD(U18_3BE, "Unsigned 18 bit Big Endian in 3bytes"), }; +static const char *snd_pcm_type_names[] = { + PCMTYPE(HW), + PCMTYPE(HOOKS), + PCMTYPE(MULTI), + PCMTYPE(FILE), + PCMTYPE(NULL), + PCMTYPE(SHM), + PCMTYPE(INET), + PCMTYPE(COPY), + PCMTYPE(LINEAR), + PCMTYPE(ALAW), + PCMTYPE(MULAW), + PCMTYPE(ADPCM), + PCMTYPE(RATE), + PCMTYPE(ROUTE), + PCMTYPE(PLUG), + PCMTYPE(SHARE), + PCMTYPE(METER), + PCMTYPE(MIX), + PCMTYPE(DROUTE), + PCMTYPE(LBSERVER), + PCMTYPE(LINEAR_FLOAT), + PCMTYPE(LADSPA), + PCMTYPE(DMIX), + PCMTYPE(JACK), +}; + static const char *snd_pcm_subformat_names[] = { SUBFORMAT(STD), }; @@ -1510,6 +1539,23 @@ return NULL; return snd_pcm_state_names[state]; } + +/** + * \brief get name of PCM type + * \param type PCM type + * \return ascii name of PCM type + */ +#ifndef DOXYGEN +const char *INTERNAL(snd_pcm_type_name)(snd_pcm_type_t type) +#else +const char *snd_pcm_type_name(snd_pcm_type_t type) +#endif +{ + if (type > SND_PCM_TYPE_LAST) + return NULL; + return snd_pcm_type_names[type]; +} +default_symbol_version(__snd_pcm_type_name, snd_pcm_type_name, ALSA_0.9.0); /** * \brief Dump current hardware setup for PCM Index: pcm_plugin.c =================================================================== RCS file: /cvsroot/alsa/alsa-lib/src/pcm/pcm_plugin.c,v retrieving revision 1.89 retrieving revision 1.90 diff -u -r1.89 -r1.90 --- pcm_plugin.c 7 Mar 2003 18:46:31 -0000 1.89 +++ pcm_plugin.c 8 Mar 2003 16:35:20 -0000 1.90 @@ -351,6 +351,7 @@ snd_pcm_t *slave = plugin->slave; snd_pcm_uframes_t xfer = 0; snd_pcm_sframes_t result; + int err; while (size > 0) { snd_pcm_uframes_t frames = size; @@ -358,8 +359,8 @@ snd_pcm_uframes_t slave_offset; snd_pcm_uframes_t slave_frames = ULONG_MAX; - snd_pcm_mmap_begin(slave, &slave_areas, &slave_offset, &slave_frames); - if (slave_frames == 0) + err = snd_pcm_mmap_begin(slave, &slave_areas, &slave_offset, &slave_frames); + if (err < 0 || slave_frames == 0) break; frames = plugin->write(pcm, areas, offset, frames, slave_areas, slave_offset, &slave_frames); Index: pcm_rate.c =================================================================== RCS file: /cvsroot/alsa/alsa-lib/src/pcm/pcm_rate.c,v retrieving revision 1.70 retrieving revision 1.71 diff -u -r1.70 -r1.71 --- pcm_rate.c 11 Feb 2003 18:14:50 -0000 1.70 +++ pcm_rate.c 8 Mar 2003 16:35:20 -0000 1.71 @@ -458,11 +458,13 @@ } params->boundary = boundary1; sparams.boundary = boundary2; +#if 0 if (pcm->stream == SND_PCM_STREAM_PLAYBACK) { rate->pitch = (((u_int64_t)boundary2 * DIV) + boundary1 / 2) / boundary1; } else { rate->pitch = (((u_int64_t)boundary1 * DIV) + boundary2 / 2) / boundary2; } +#endif recalc(pcm, &sparams.avail_min); recalc(pcm, &sparams.xfer_align); recalc(pcm, &sparams.start_threshold); ------------------------------------------------------- This SF.net email is sponsored by: Etnus, makers of TotalView, The debugger for complex code. Debugging C/C++ programs can leave you feeling lost and disoriented. TotalView can help you find your way. Available on major UNIX and Linux platforms. Try it free. www.etnus.com _______________________________________________ Alsa-cvslog mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-cvslog