Index: libecasound/plugins/audioio_sndfile.cpp =================================================================== RCS file: /home/cvspsrv/cvsroot/sound/ecasound/libecasound/plugins/audioio_sndfile.cpp,v retrieving revision 1.8 diff -u -r1.8 audioio_sndfile.cpp --- libecasound/plugins/audioio_sndfile.cpp 10 Oct 2004 19:47:25 -0000 1.8 +++ libecasound/plugins/audioio_sndfile.cpp 12 Oct 2004 21:25:14 -0000 @@ -126,7 +126,19 @@ real_filename = opt_filename_rep; } - if (io_mode() == io_read) { + string teksti = real_filename; + if (!opt_format_rep.empty()) { + teksti = opt_format_rep; + } + kvu_to_lowercase(teksti); + + // need to treat raw specially for read-only opening + bool is_raw = false; + if (strstr(teksti.c_str(),".raw") != 0) { + is_raw = true; + } + + if (io_mode() == io_read && !is_raw) { ECA_LOG_MSG(ECA_LOGGER::info, "(audioio-sndfile) Using libsndfile to open file \"" + real_filename + "\" for reading."); @@ -144,11 +156,6 @@ /* write or readwrite */ int file_format = -1; - string teksti = real_filename; - if (!opt_format_rep.empty()) { - teksti = opt_format_rep; - } - kvu_to_lowercase(teksti); // FIXME: add support for more output types @@ -197,7 +204,13 @@ throw(SETUP_ERROR(SETUP_ERROR::io_mode, "AUDIOIO-SNDFILE: Error! Unknown audio format requested.")); } - // FIXME: set endianess + // set endianess + if (sample_endianess() == se_little) { + file_format |= SF_ENDIAN_LITTLE; + } + else if (sample_endianess() == se_big) { + file_format |= SF_ENDIAN_BIG; + } /* set samplerate and channels */ sfinfo.samplerate = samples_per_second(); @@ -215,6 +228,20 @@ + "\" for writing.")); } } + else if (io_mode() == io_read) { + ECA_LOG_MSG(ECA_LOGGER::info, "(audioio-sndfile) Using libsndfile to open file \"" + + real_filename + "\" for reading."); + + + snd_repp = sf_open(real_filename.c_str(), SFM_READ, &sfinfo); + if (snd_repp == NULL) { + throw(SETUP_ERROR(SETUP_ERROR::io_mode, "AUDIOIO-SNDFILE: Can't open file \"" + real_filename + + "\" for reading.")); + } + else { + open_parse_info(&sfinfo); + } + } else { ECA_LOG_MSG(ECA_LOGGER::info, "(audioio-sndfile) Using libsndfile to open file \"" + real_filename + "\" for read/write.");