#include "error.h"
#include "string.h"
-/*
- * return 1 if name matches any supported audio format
- */
-static int match_audio_file_name(char *name)
-{
- int i, len = strlen(name);
- const char *pattern[] = {SUPPORTED_AUDIO_FORMATS_ARRAY};
-
- for (i = 0; pattern[i]; i++) {
- const char *p = pattern[i];
- int plen = strlen(p);
- if (len < plen + 1)
- continue;
- if (name[len - plen - 1] != '.')
- continue;
- if (strcasecmp(name + len - plen, p))
- continue;
- return 1;
- }
- return 0;
-}
-
/**
* traverse the given directory recursively
*
continue;
ret = -E_LSTAT;
if (lstat(entry->d_name, &s) == -1)
- goto out;
+ continue;
m = s.st_mode;
if (!S_ISREG(m) && !S_ISDIR(m)) /* skip links, sockets, ... */
continue;
if (S_ISREG(m)) { /* regular file */
- if (!match_audio_file_name(entry->d_name))
+ if (guess_audio_format(entry->d_name) < 0)
continue;
- if (f(dirname, entry->d_name) < 0)
+ ret = f(dirname, entry->d_name);
+ if (ret < 0)
goto out;
continue;
}
ret = -E_CHDIR;
close(cwd_fd);
if (ret < 0)
- PARA_ERROR_LOG("ret = %x\n", -ret);
+ PARA_ERROR_LOG("%s\n", PARA_STRERROR(-ret));
return ret;
}