]> code.delx.au - pulseaudio/blobdiff - src/sample.c
esound protocol
[pulseaudio] / src / sample.c
index 2454630cf716684f920f843a608c0911ef969ccc..b0d0cdbd03fbcf27df47baf8afe183c72666ad10 100644 (file)
@@ -7,18 +7,20 @@ size_t pa_sample_size(struct pa_sample_spec *spec) {
     size_t b = 1;
 
     switch (spec->format) {
-        case SAMPLE_U8:
-        case SAMPLE_ULAW:
-        case SAMPLE_ALAW:
+        case PA_SAMPLE_U8:
+        case PA_SAMPLE_ULAW:
+        case PA_SAMPLE_ALAW:
             b = 1;
             break;
-        case SAMPLE_S16LE:
-        case SAMPLE_S16BE:
+        case PA_SAMPLE_S16LE:
+        case PA_SAMPLE_S16BE:
             b = 2;
             break;
-        case SAMPLE_FLOAT32:
+        case PA_SAMPLE_FLOAT32:
             b = 4;
             break;
+        default:
+            assert(0);
     }
 
     return b * spec->channels;
@@ -35,3 +37,15 @@ uint32_t pa_samples_usec(size_t length, struct pa_sample_spec *spec) {
 
     return (uint32_t) (((double) length /pa_sample_size(spec))/spec->rate*1000000);
 }
+
+int pa_sample_spec_valid(struct pa_sample_spec *spec) {
+    assert(spec);
+
+    if (!spec->rate || !spec->channels)
+        return 0;
+
+    if (spec->format <= 0 || spec->format >= PA_SAMPLE_MAX)
+        return 0;
+
+    return 1;
+}