37 N_(
"W64 (64 bit WAV)"),
40 N_(
"raw (no header)"),
66 N_(
"Signed 16 bit PCM"),
67 N_(
"Signed 24 bit PCM"),
68 N_(
"Signed 32 bit PCM"),
69 N_(
"Signed 8 bit PCM"),
83 N_(
"Little-endian (Intel)"),
84 N_(
"Big-endian (PowerPC)"),
123 int tval = format & 0xf;
126 case SF_FORMAT_PCM_S8:
127 case SF_FORMAT_PCM_U8:
129 case SF_FORMAT_PCM_16:
131 case SF_FORMAT_PCM_24:
133 case SF_FORMAT_PCM_32:
135 case SF_FORMAT_FLOAT:
146 static map<int, string> m;
149 SF_FORMAT_INFO format_info;
151 sf_command(0, SFC_GET_FORMAT_MAJOR_COUNT, &count,
sizeof (
int));
152 for (
int i = 0; i < count; ++i){
153 format_info.format = i;
154 sf_command (0, SFC_GET_FORMAT_MAJOR,
155 &format_info,
sizeof (format_info));
156 m[format_info.format & SF_FORMAT_TYPEMASK] = format_info.name;
160 if (strncasecmp (format_info.name,
"OGG", 3) == 0) {
161 m[format_info.format & SF_FORMAT_TYPEMASK] =
"Ogg";
162 }
else if (strncasecmp (format_info.name,
"WAV", 3) == 0) {
163 m[format_info.format & SF_FORMAT_TYPEMASK] =
"WAV";
165 m[format_info.format & SF_FORMAT_TYPEMASK] = format_info.name;
170 map<int, string>::iterator p = m.find(format & SF_FORMAT_TYPEMASK);
172 return m[format & SF_FORMAT_TYPEMASK];
181 static map<int, string> m;
184 SF_FORMAT_INFO format_info;
186 sf_command(0, SFC_GET_FORMAT_SUBTYPE_COUNT, &count,
sizeof (
int));
187 for (
int i = 0; i < count; ++i){
188 format_info.format = i;
189 sf_command (0, SFC_GET_FORMAT_SUBTYPE,
190 &format_info,
sizeof (format_info));
191 m[format_info.format & SF_FORMAT_SUBMASK] = format_info.name;
195 map<int, string>::iterator p = m.find(format & SF_FORMAT_SUBMASK);
197 return m[format & SF_FORMAT_SUBMASK];
#define SNDFILE_HEADER_FORMATS
const char *const sndfile_file_endings_strings[SNDFILE_HEADER_FORMATS+1]
const char *const sndfile_endian_formats_strings[SNDFILE_ENDIAN_FORMATS+1]
const char *const sndfile_bitdepth_formats_strings[SNDFILE_BITDEPTH_FORMATS+1]
int sndfile_data_width(int format)
int sndfile_header_format_by_index(int index)
int sndfile_endian_formats[SNDFILE_ENDIAN_FORMATS]
int sndfile_header_formats[SNDFILE_HEADER_FORMATS]
int sndfile_endian_format_by_index(int index)
int sndfile_bitdepth_formats[SNDFILE_BITDEPTH_FORMATS]
string sndfile_minor_format(int format)
int sndfile_bitdepth_format_by_index(int index)
string sndfile_major_format(int format)
const char *const sndfile_header_formats_strings[SNDFILE_HEADER_FORMATS+1]
#define SNDFILE_BITDEPTH_FORMATS
#define SNDFILE_ENDIAN_FORMATS