diff options
Diffstat (limited to 'src/pulse/sample.c')
| -rw-r--r-- | src/pulse/sample.c | 41 | 
1 files changed, 37 insertions, 4 deletions
diff --git a/src/pulse/sample.c b/src/pulse/sample.c index 1e67b037..0f19f8eb 100644 --- a/src/pulse/sample.c +++ b/src/pulse/sample.c @@ -231,13 +231,46 @@ pa_sample_format_t pa_parse_sample_format(const char *format) {      else if (strcasecmp(format, "s24re") == 0)          return PA_SAMPLE_S24RE;      else if (strcasecmp(format, "s24-32le") == 0) -        return PA_SAMPLE_S24LE; +        return PA_SAMPLE_S24_32LE;      else if (strcasecmp(format, "s24-32be") == 0) -        return PA_SAMPLE_S24BE; +        return PA_SAMPLE_S24_32BE;      else if (strcasecmp(format, "s24-32ne") == 0 || strcasecmp(format, "s24-32") == 0) -        return PA_SAMPLE_S24NE; +        return PA_SAMPLE_S24_32NE;      else if (strcasecmp(format, "s24-32re") == 0) -        return PA_SAMPLE_S24RE; +        return PA_SAMPLE_S24_32RE;      return -1;  } + +int pa_sample_format_is_le(pa_sample_format_t f) { +    pa_assert(f >= PA_SAMPLE_U8); +    pa_assert(f < PA_SAMPLE_MAX); + +    switch (f) { +        case PA_SAMPLE_S16LE: +        case PA_SAMPLE_S24LE: +        case PA_SAMPLE_S32LE: +        case PA_SAMPLE_S24_32LE: +        case PA_SAMPLE_FLOAT32LE: +            return 1; + +        case PA_SAMPLE_S16BE: +        case PA_SAMPLE_S24BE: +        case PA_SAMPLE_S32BE: +        case PA_SAMPLE_S24_32BE: +        case PA_SAMPLE_FLOAT32BE: +            return 0; + +        default: +            return -1; +    } +} + +int pa_sample_format_is_be(pa_sample_format_t f) { +    int r; + +    if ((r = pa_sample_format_is_le(f)) < 0) +        return r; + +    return !r; +}  | 
