changeset 2354:6b854a93649c

introduced experimental support for 24bit and 32bit audio output
author Cristi Magherusan <majeru@atheme.org>
date Mon, 04 Feb 2008 15:54:01 +0200
parents 415e67d313ad
children 0962a6325b9b
files src/OSS4/audio.c
diffstat 1 files changed, 56 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/OSS4/audio.c	Mon Feb 04 01:06:03 2008 -0600
+++ b/src/OSS4/audio.c	Mon Feb 04 15:54:01 2008 +0200
@@ -149,9 +149,64 @@
 #else
         format = AFMT_S16_LE;
 #endif
+        break;   
+#if 0  /* OSS currently doesn't support AFMT_U24_* */
+    case FMT_U24_LE:
+        format = AFMT_U24_LE;
+        break;
+    case FMT_U24_BE:
+        format = AFMT_U24_BE;
+        break;
+    case FMT_U24_NE:
+#if (G_BYTE_ORDER == G_BIG_ENDIAN)
+        format = AFMT_U24_BE;
+#else
+        format = AFMT_U24_LE;
+#endif
+        break;
+#endif
+    case FMT_S24_LE:
+        format = AFMT_S24_LE;
+        break;
+    case FMT_S24_BE:
+        format = AFMT_S24_BE;
+        break;
+    case FMT_S24_NE:
+#if (G_BYTE_ORDER == G_BIG_ENDIAN)
+        format = AFMT_S24_BE;
+#else
+        format = AFMT_S24_LE;
+#endif
+        break;
+#if 0  /* OSS currently doesn't support AFMT_U32_* */
+    case FMT_U32_LE:
+        format = AFMT_U32_LE;
+        break;
+    case FMT_U32_BE:
+        format = AFMT_U32_BE;
+        break;
+    case FMT_U32_NE:
+#if (G_BYTE_ORDER == G_BIG_ENDIAN)
+        format = AFMT_U32_BE;
+#else
+        format = AFMT_U32_LE;
+#endif
+        break;
+#endif
+    case FMT_S32_LE:
+        format = AFMT_S32_LE;
+        break;
+    case FMT_S32_BE:
+        format = AFMT_S32_BE;
+        break;
+    case FMT_S32_NE:
+#if (G_BYTE_ORDER == G_BIG_ENDIAN)
+        format = AFMT_S32_BE;
+#else
+        format = AFMT_S32_LE;
+#endif
         break;
     }
-
     return format;
 }