summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/ardour/sndfile_helpers.h7
-rw-r--r--libs/ardour/sndfile_helpers.cc41
2 files changed, 12 insertions, 36 deletions
diff --git a/libs/ardour/ardour/sndfile_helpers.h b/libs/ardour/ardour/sndfile_helpers.h
index 26a93ad124..d31e889cc6 100644
--- a/libs/ardour/ardour/sndfile_helpers.h
+++ b/libs/ardour/ardour/sndfile_helpers.h
@@ -44,10 +44,9 @@ extern const char * const sndfile_endian_formats_strings[SNDFILE_ENDIAN_FORMATS+
extern int sndfile_endian_formats[SNDFILE_ENDIAN_FORMATS];
-int sndfile_bitdepth_format_from_string(string);
-int sndfile_header_format_from_string(string);
-int sndfile_endian_format_from_string(string);
-string sndfile_file_ending_from_string(string);
+int sndfile_bitdepth_format_by_index(int);
+int sndfile_header_format_by_index(int);
+int sndfile_endian_format_by_index(int);
int sndfile_data_width (int format);
diff --git a/libs/ardour/sndfile_helpers.cc b/libs/ardour/sndfile_helpers.cc
index 08181730fd..67a2be5a2c 100644
--- a/libs/ardour/sndfile_helpers.cc
+++ b/libs/ardour/sndfile_helpers.cc
@@ -92,55 +92,32 @@ int sndfile_endian_formats[SNDFILE_ENDIAN_FORMATS] = {
};
int
-sndfile_header_format_from_string (string str)
+sndfile_header_format_by_index (int index)
{
- for (int n = 0; sndfile_header_formats_strings[n]; ++n) {
- if (str == sndfile_header_formats_strings[n]) {
- return sndfile_header_formats[n];
- }
+ if (index >= 0 && index < SNDFILE_HEADER_FORMATS) {
+ return sndfile_header_formats[index];
}
return -1;
}
int
-sndfile_bitdepth_format_from_string (string str)
+sndfile_bitdepth_format_by_index (int index)
{
- for (int n = 0; sndfile_bitdepth_formats_strings[n]; ++n) {
- if (str == sndfile_bitdepth_formats_strings[n]) {
- return sndfile_bitdepth_formats[n];
- }
+ if (index >= 0 && index < SNDFILE_BITDEPTH_FORMATS) {
+ return sndfile_bitdepth_formats[index];
}
return -1;
}
int
-sndfile_endian_format_from_string (string str)
+sndfile_endian_format_by_index (int index)
{
- for (int n = 0; sndfile_endian_formats_strings[n]; ++n) {
- if (str == sndfile_endian_formats_strings[n]) {
- return sndfile_endian_formats[n];
- }
+ if (index >= 0 && index < SNDFILE_ENDIAN_FORMATS) {
+ return sndfile_endian_formats[index];
}
return -1;
}
-string
-sndfile_file_ending_from_string (string str)
-{
- static vector<string> file_endings;
-
- if (file_endings.empty()) {
- file_endings = I18N((const char **) sndfile_file_endings_strings);
- }
-
- for (int n = 0; sndfile_header_formats_strings[n]; ++n) {
- if (str == sndfile_header_formats_strings[n]) {
- return file_endings[n];
- }
- }
- return 0;
-}
-
int
sndfile_data_width (int format)
{