1/* 2 * Copyright (C) 2008 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17package android.media; 18 19/** 20 * The AudioFormat class is used to access a number of audio format and 21 * channel configuration constants. They are for instance used 22 * in {@link AudioTrack} and {@link AudioRecord}. 23 * 24 */ 25public class AudioFormat { 26 27 //--------------------------------------------------------- 28 // Constants 29 //-------------------- 30 /** Invalid audio data format */ 31 public static final int ENCODING_INVALID = 0; 32 /** Default audio data format */ 33 public static final int ENCODING_DEFAULT = 1; 34 // These two values must be kept in sync with JNI code for AudioTrack, AudioRecord 35 /** Audio data format: PCM 16 bit per sample. Guaranteed to be supported by devices. */ 36 public static final int ENCODING_PCM_16BIT = 2; 37 /** Audio data format: PCM 8 bit per sample. Not guaranteed to be supported by devices. */ 38 public static final int ENCODING_PCM_8BIT = 3; 39 40 /** Invalid audio channel configuration */ 41 /** @deprecated use CHANNEL_INVALID instead */ 42 @Deprecated public static final int CHANNEL_CONFIGURATION_INVALID = 0; 43 /** Default audio channel configuration */ 44 /** @deprecated use CHANNEL_OUT_DEFAULT or CHANNEL_IN_DEFAULT instead */ 45 @Deprecated public static final int CHANNEL_CONFIGURATION_DEFAULT = 1; 46 /** Mono audio configuration */ 47 /** @deprecated use CHANNEL_OUT_MONO or CHANNEL_IN_MONO instead */ 48 @Deprecated public static final int CHANNEL_CONFIGURATION_MONO = 2; 49 /** Stereo (2 channel) audio configuration */ 50 /** @deprecated use CHANNEL_OUT_STEREO or CHANNEL_IN_STEREO instead */ 51 @Deprecated public static final int CHANNEL_CONFIGURATION_STEREO = 3; 52 53 /** Invalid audio channel mask */ 54 public static final int CHANNEL_INVALID = 0; 55 /** Default audio channel mask */ 56 public static final int CHANNEL_OUT_DEFAULT = 1; 57 58 // Channel mask definitions below are translated to the native values defined in 59 // in /system/core/include/system/audio.h in the JNI code of AudioTrack 60 public static final int CHANNEL_OUT_FRONT_LEFT = 0x4; 61 public static final int CHANNEL_OUT_FRONT_RIGHT = 0x8; 62 public static final int CHANNEL_OUT_FRONT_CENTER = 0x10; 63 public static final int CHANNEL_OUT_LOW_FREQUENCY = 0x20; 64 public static final int CHANNEL_OUT_BACK_LEFT = 0x40; 65 public static final int CHANNEL_OUT_BACK_RIGHT = 0x80; 66 public static final int CHANNEL_OUT_FRONT_LEFT_OF_CENTER = 0x100; 67 public static final int CHANNEL_OUT_FRONT_RIGHT_OF_CENTER = 0x200; 68 public static final int CHANNEL_OUT_BACK_CENTER = 0x400; 69 /** @hide */ 70 public static final int CHANNEL_OUT_SIDE_LEFT = 0x800; 71 /** @hide */ 72 public static final int CHANNEL_OUT_SIDE_RIGHT = 0x1000; 73 /** @hide */ 74 public static final int CHANNEL_OUT_TOP_CENTER = 0x2000; 75 /** @hide */ 76 public static final int CHANNEL_OUT_TOP_FRONT_LEFT = 0x4000; 77 /** @hide */ 78 public static final int CHANNEL_OUT_TOP_FRONT_CENTER = 0x8000; 79 /** @hide */ 80 public static final int CHANNEL_OUT_TOP_FRONT_RIGHT = 0x10000; 81 /** @hide */ 82 public static final int CHANNEL_OUT_TOP_BACK_LEFT = 0x20000; 83 /** @hide */ 84 public static final int CHANNEL_OUT_TOP_BACK_CENTER = 0x40000; 85 /** @hide */ 86 public static final int CHANNEL_OUT_TOP_BACK_RIGHT = 0x80000; 87 88 public static final int CHANNEL_OUT_MONO = CHANNEL_OUT_FRONT_LEFT; 89 public static final int CHANNEL_OUT_STEREO = (CHANNEL_OUT_FRONT_LEFT | CHANNEL_OUT_FRONT_RIGHT); 90 public static final int CHANNEL_OUT_QUAD = (CHANNEL_OUT_FRONT_LEFT | CHANNEL_OUT_FRONT_RIGHT | 91 CHANNEL_OUT_BACK_LEFT | CHANNEL_OUT_BACK_RIGHT); 92 public static final int CHANNEL_OUT_SURROUND = (CHANNEL_OUT_FRONT_LEFT | CHANNEL_OUT_FRONT_RIGHT | 93 CHANNEL_OUT_FRONT_CENTER | CHANNEL_OUT_BACK_CENTER); 94 public static final int CHANNEL_OUT_5POINT1 = (CHANNEL_OUT_FRONT_LEFT | CHANNEL_OUT_FRONT_RIGHT | 95 CHANNEL_OUT_FRONT_CENTER | CHANNEL_OUT_LOW_FREQUENCY | CHANNEL_OUT_BACK_LEFT | CHANNEL_OUT_BACK_RIGHT); 96 public static final int CHANNEL_OUT_7POINT1 = (CHANNEL_OUT_FRONT_LEFT | CHANNEL_OUT_FRONT_RIGHT | 97 CHANNEL_OUT_FRONT_CENTER | CHANNEL_OUT_LOW_FREQUENCY | CHANNEL_OUT_BACK_LEFT | CHANNEL_OUT_BACK_RIGHT | 98 CHANNEL_OUT_FRONT_LEFT_OF_CENTER | CHANNEL_OUT_FRONT_RIGHT_OF_CENTER); 99 /** @hide */ 100 public static final int CHANNEL_OUT_7POINT1_SURROUND = ( 101 CHANNEL_OUT_FRONT_LEFT | CHANNEL_OUT_FRONT_CENTER | CHANNEL_OUT_FRONT_RIGHT | 102 CHANNEL_OUT_SIDE_LEFT | CHANNEL_OUT_SIDE_RIGHT | 103 CHANNEL_OUT_BACK_LEFT | CHANNEL_OUT_BACK_RIGHT | 104 CHANNEL_OUT_LOW_FREQUENCY); 105 106 public static final int CHANNEL_IN_DEFAULT = 1; 107 public static final int CHANNEL_IN_LEFT = 0x4; 108 public static final int CHANNEL_IN_RIGHT = 0x8; 109 public static final int CHANNEL_IN_FRONT = 0x10; 110 public static final int CHANNEL_IN_BACK = 0x20; 111 public static final int CHANNEL_IN_LEFT_PROCESSED = 0x40; 112 public static final int CHANNEL_IN_RIGHT_PROCESSED = 0x80; 113 public static final int CHANNEL_IN_FRONT_PROCESSED = 0x100; 114 public static final int CHANNEL_IN_BACK_PROCESSED = 0x200; 115 public static final int CHANNEL_IN_PRESSURE = 0x400; 116 public static final int CHANNEL_IN_X_AXIS = 0x800; 117 public static final int CHANNEL_IN_Y_AXIS = 0x1000; 118 public static final int CHANNEL_IN_Z_AXIS = 0x2000; 119 public static final int CHANNEL_IN_VOICE_UPLINK = 0x4000; 120 public static final int CHANNEL_IN_VOICE_DNLINK = 0x8000; 121 public static final int CHANNEL_IN_MONO = CHANNEL_IN_FRONT; 122 public static final int CHANNEL_IN_STEREO = (CHANNEL_IN_LEFT | CHANNEL_IN_RIGHT); 123 124} 125