19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2009 The Android Open Source Project 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License. 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License. 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 17db6028508c8eb31a0de1dcdfc410ddfe6df7c5adXia Wangpackage com.android.mediaframeworktest.functional.audio; 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport com.android.mediaframeworktest.MediaFrameworkTest; 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport com.android.mediaframeworktest.MediaNames; 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.media.AudioFormat; 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.media.AudioManager; 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.media.AudioTrack; 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.test.ActivityInstrumentationTestCase2; 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.util.Log; 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.test.suitebuilder.annotation.LargeTest; 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.test.suitebuilder.annotation.MediumTest; 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.test.suitebuilder.annotation.Suppress; 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Junit / Instrumentation test case for the media AudioTrack api 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class MediaAudioTrackTest extends ActivityInstrumentationTestCase2<MediaFrameworkTest> { 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String TAG = "MediaAudioTrackTest"; 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public MediaAudioTrackTest() { 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super("com.android.mediaframeworktest", MediaFrameworkTest.class); 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project protected void setUp() throws Exception { 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super.setUp(); 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project protected void tearDown() throws Exception { 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super.tearDown(); 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static void assumeTrue(String message, boolean cond) { 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue("(assume)"+message, cond); 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private void log(String testName, String message) { 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Log.v(TAG, "["+testName+"] "+message); 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private void loge(String testName, String message) { 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Log.e(TAG, "["+testName+"] "+message); 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //----------------------------------------------------------------- 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // private class to hold test reslts 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public class TestResults { 679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean mResult = false; 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String mResultLog = ""; 699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public TestResults(boolean b, String s) { mResult = b; mResultLog = s; } 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //----------------------------------------------------------------- 739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // generic test methods 749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public TestResults constructorTestMultiSampleRate( 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // parameters tested by this method 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int _inTest_streamType, int _inTest_mode, 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int _inTest_config, int _inTest_format, 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // parameter-dependent expected results 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int _expected_stateForMode) { 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int[] testSampleRates = {8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000}; 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String failedRates = "Failure for rate(s): "; 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean localRes, finalRes = true; 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0 ; i < testSampleRates.length ; i++) { 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Log.v("MediaAudioTrackTest", "[ constructorTestMultiSampleRate ] testing "+ testSampleRates[i]); 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack track = null; 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track = new AudioTrack( 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project _inTest_streamType, 919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project testSampleRates[i], 929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project _inTest_config, 939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project _inTest_format, 949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack.getMinBufferSize(testSampleRates[i], 959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project _inTest_config, _inTest_format), 969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project _inTest_mode); 979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch(IllegalArgumentException iae) { 989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Log.e("MediaAudioTrackTest", "[ constructorTestMultiSampleRate ] exception at SR " 999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + testSampleRates[i]+": \n" + iae); 1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project localRes = false; 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (track != null) { 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project localRes = (track.getState() == _expected_stateForMode); 1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.release(); 1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project else { 1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project localRes = false; 1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (!localRes) { 1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //log the error for the test runner 1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project failedRates += Integer.toString(testSampleRates[i]) + "Hz "; 1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //log the error for logcat 1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project log("constructorTestMultiSampleRate", "failed to construct " 1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project +"AudioTrack(streamType="+_inTest_streamType 1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project +", sampleRateInHz=" + testSampleRates[i] 1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project +", channelConfig=" + _inTest_config 1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project +", audioFormat=" + _inTest_format 1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project +", bufferSizeInBytes=" + AudioTrack.getMinBufferSize(testSampleRates[i], 1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project _inTest_config, AudioFormat.ENCODING_PCM_16BIT) 1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project +", mode="+ _inTest_mode ); 1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //mark test as failed 1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project finalRes = false; 1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return new TestResults(finalRes, failedRates); 1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //----------------------------------------------------------------- 1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // AUDIOTRACK TESTS: 1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //---------------------------------- 1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //----------------------------------------------------------------- 1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // AudioTrack constructor and AudioTrack.getMinBufferSize(...) for 16bit PCM 1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //---------------------------------- 1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 1: constructor for streaming AudioTrack, mono, 16bit at misc valid sample rates 1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testConstructorMono16MusicStream() throws Exception { 1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project TestResults res = constructorTestMultiSampleRate( 1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioManager.STREAM_MUSIC, AudioTrack.MODE_STREAM, 143a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT, 1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack.STATE_INITIALIZED); 1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue("testConstructorMono16MusicStream: " + res.mResultLog, res.mResult); 1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 2: constructor for streaming AudioTrack, stereo, 16bit at misc valid sample rates 1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testConstructorStereo16MusicStream() throws Exception { 1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project TestResults res = constructorTestMultiSampleRate( 1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioManager.STREAM_MUSIC, AudioTrack.MODE_STREAM, 156a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent AudioFormat.CHANNEL_OUT_STEREO, AudioFormat.ENCODING_PCM_16BIT, 1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack.STATE_INITIALIZED); 1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue("testConstructorStereo16MusicStream: " + res.mResultLog, res.mResult); 1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 3: constructor for static AudioTrack, mono, 16bit at misc valid sample rates 1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testConstructorMono16MusicStatic() throws Exception { 1669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project TestResults res = constructorTestMultiSampleRate( 1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioManager.STREAM_MUSIC, AudioTrack.MODE_STATIC, 169a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT, 1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack.STATE_NO_STATIC_DATA); 1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue("testConstructorMono16MusicStatic: " + res.mResultLog, res.mResult); 1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 4: constructor for static AudioTrack, stereo, 16bit at misc valid sample rates 1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testConstructorStereo16MusicStatic() throws Exception { 1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project TestResults res = constructorTestMultiSampleRate( 1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioManager.STREAM_MUSIC, AudioTrack.MODE_STATIC, 182a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent AudioFormat.CHANNEL_OUT_STEREO, AudioFormat.ENCODING_PCM_16BIT, 1839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack.STATE_NO_STATIC_DATA); 1849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue("testConstructorStereo16MusicStatic: " + res.mResultLog, res.mResult); 1869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //----------------------------------------------------------------- 1909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // AudioTrack constructor and AudioTrack.getMinBufferSize(...) for 8bit PCM 1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //---------------------------------- 1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 1: constructor for streaming AudioTrack, mono, 8bit at misc valid sample rates 1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testConstructorMono8MusicStream() throws Exception { 1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project TestResults res = constructorTestMultiSampleRate( 1989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioManager.STREAM_MUSIC, AudioTrack.MODE_STREAM, 199a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_8BIT, 2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack.STATE_INITIALIZED); 2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue("testConstructorMono8MusicStream: " + res.mResultLog, res.mResult); 2039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 2: constructor for streaming AudioTrack, stereo, 8bit at misc valid sample rates 2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testConstructorStereo8MusicStream() throws Exception { 2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project TestResults res = constructorTestMultiSampleRate( 2109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioManager.STREAM_MUSIC, AudioTrack.MODE_STREAM, 211a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent AudioFormat.CHANNEL_OUT_STEREO, AudioFormat.ENCODING_PCM_8BIT, 2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack.STATE_INITIALIZED); 2139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue("testConstructorStereo8MusicStream: " + res.mResultLog, res.mResult); 2159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 3: constructor for static AudioTrack, mono, 8bit at misc valid sample rates 2189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 2199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testConstructorMono8MusicStatic() throws Exception { 2209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project TestResults res = constructorTestMultiSampleRate( 2229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioManager.STREAM_MUSIC, AudioTrack.MODE_STATIC, 223a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_8BIT, 2249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack.STATE_NO_STATIC_DATA); 2259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue("testConstructorMono8MusicStatic: " + res.mResultLog, res.mResult); 2279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 4: constructor for static AudioTrack, stereo, 8bit at misc valid sample rates 2309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 2319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testConstructorStereo8MusicStatic() throws Exception { 2329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project TestResults res = constructorTestMultiSampleRate( 2349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioManager.STREAM_MUSIC, AudioTrack.MODE_STATIC, 235a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent AudioFormat.CHANNEL_OUT_STEREO, AudioFormat.ENCODING_PCM_8BIT, 2369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack.STATE_NO_STATIC_DATA); 2379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue("testConstructorStereo8MusicStatic: " + res.mResultLog, res.mResult); 2399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //----------------------------------------------------------------- 2439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // AudioTrack constructor for all stream types 2449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //---------------------------------- 2459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 1: constructor for all stream types 2479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 2489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testConstructorStreamType() throws Exception { 2499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // constants for test 2509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TYPE_TEST_SR = 22050; 251a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TYPE_TEST_CONF = AudioFormat.CHANNEL_OUT_STEREO; 2529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TYPE_TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 2539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TYPE_TEST_MODE = AudioTrack.MODE_STREAM; 2549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int[] STREAM_TYPES = { AudioManager.STREAM_ALARM, AudioManager.STREAM_BLUETOOTH_SCO, 2559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioManager.STREAM_MUSIC, AudioManager.STREAM_NOTIFICATION, 2569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioManager.STREAM_RING, AudioManager.STREAM_SYSTEM, 257a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent AudioManager.STREAM_VOICE_CALL, AudioManager.STREAM_DTMF, }; 2589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String[] STREAM_NAMES = { "STREAM_ALARM", "STREAM_BLUETOOTH_SCO", "STREAM_MUSIC", 259a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent "STREAM_NOTIFICATION", "STREAM_RING", "STREAM_SYSTEM", "STREAM_VOICE_CALL", "STREAM_DTMF" }; 2609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean localTestRes = true; 2629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack track = null; 2639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // test: loop constructor on all stream types 2649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0 ; i < STREAM_TYPES.length ; i++) 2659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 2669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 2679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- initialization -------------- 2689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track = new AudioTrack(STREAM_TYPES[i], 2699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project TYPE_TEST_SR, TYPE_TEST_CONF, TYPE_TEST_FORMAT, 2709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack.getMinBufferSize(TYPE_TEST_SR, TYPE_TEST_CONF, TYPE_TEST_FORMAT), 2719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project TYPE_TEST_MODE); 2729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (IllegalArgumentException iae) { 2739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project loge("testConstructorStreamType", "exception for stream type " 2749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + STREAM_NAMES[i] + ": "+ iae); 2759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project localTestRes = false; 2769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- test -------------- 2789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (track != null) { 2799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (track.getState() != AudioTrack.STATE_INITIALIZED) { 2809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project localTestRes = false; 2819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Log.e("MediaAudioTrackTest", 2829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project "[ testConstructorStreamType ] failed for stream type "+STREAM_NAMES[i]); 2839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- tear down -------------- 2859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.release(); 2869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project else { 2889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project localTestRes = false; 2899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue("testConstructorStreamType", localTestRes); 2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //----------------------------------------------------------------- 2979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Playback head position 2989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //---------------------------------- 2999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 1: getPlaybackHeadPosition() at 0 after initialization 3019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 3029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testPlaybackHeadPositionAfterInit() throws Exception { 3039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // constants for test 3049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String TEST_NAME = "testPlaybackHeadPositionAfterInit"; 3059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_SR = 22050; 306a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_STEREO; 3079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 3089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 3099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 3109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- initialization -------------- 3129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 3139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT), TEST_MODE); 3149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- test -------------- 3159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 3169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(TEST_NAME, track.getPlaybackHeadPosition() == 0); 3179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- tear down -------------- 3189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.release(); 3199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 2: getPlaybackHeadPosition() increases after play() 3229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 3239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testPlaybackHeadPositionIncrease() throws Exception { 3249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // constants for test 3259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String TEST_NAME = "testPlaybackHeadPositionIncrease"; 3269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_SR = 22050; 327a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_STEREO; 3289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 3299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 3309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 3319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- initialization -------------- 3339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 3349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 3359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project minBuffSize, TEST_MODE); 3369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte data[] = new byte[minBuffSize/2]; 3379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- test -------------- 3389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 3399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 3409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 3419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.play(); 3429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Thread.sleep(100); 3439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project log(TEST_NAME, "position ="+ track.getPlaybackHeadPosition()); 3449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(TEST_NAME, track.getPlaybackHeadPosition() > 0); 3459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- tear down -------------- 3469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.release(); 3479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 3: getPlaybackHeadPosition() is 0 after flush(); 3509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 3519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testPlaybackHeadPositionAfterFlush() throws Exception { 3529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // constants for test 3539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String TEST_NAME = "testPlaybackHeadPositionAfterFlush"; 3549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_SR = 22050; 355a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_STEREO; 3569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 3579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 3589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 3599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- initialization -------------- 3619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 3629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 3639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project minBuffSize, TEST_MODE); 3649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte data[] = new byte[minBuffSize/2]; 3659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- test -------------- 3669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 3679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 3689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 3699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.play(); 3709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Thread.sleep(100); 3719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.stop(); 3729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.flush(); 3739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project log(TEST_NAME, "position ="+ track.getPlaybackHeadPosition()); 3749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(TEST_NAME, track.getPlaybackHeadPosition() == 0); 3759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- tear down -------------- 3769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.release(); 3779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 3: getPlaybackHeadPosition() is 0 after stop(); 3809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 3819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testPlaybackHeadPositionAfterStop() throws Exception { 3829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // constants for test 3839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String TEST_NAME = "testPlaybackHeadPositionAfterStop"; 3849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_SR = 22050; 385a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_STEREO; 3869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 3879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 3889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 3899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- initialization -------------- 3919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 3929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 3939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project minBuffSize, TEST_MODE); 3949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte data[] = new byte[minBuffSize/2]; 3959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- test -------------- 3969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 3979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 3989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 3999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.play(); 4009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Thread.sleep(100); 4019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.stop(); 4029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Thread.sleep(100); // TODO: what is a sensible value? 4039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int pos = track.getPlaybackHeadPosition(); 4049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project log(TEST_NAME, "position ="+ pos); 4059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(TEST_NAME, pos == 0); 4069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- tear down -------------- 4079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.release(); 4089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 4: getPlaybackHeadPosition() is > 0 after play(); pause(); 4119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 4129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testPlaybackHeadPositionAfterPause() throws Exception { 4139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // constants for test 4149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String TEST_NAME = "testPlaybackHeadPositionAfterPause"; 4159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_SR = 22050; 416a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_STEREO; 4179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 4189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 4199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 4209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- initialization -------------- 4229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 4239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 4249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project minBuffSize, TEST_MODE); 4259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte data[] = new byte[minBuffSize/2]; 4269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- test -------------- 4279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 4289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 4299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 4309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.play(); 4319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Thread.sleep(100); 4329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.pause(); 4339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int pos = track.getPlaybackHeadPosition(); 4349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project log(TEST_NAME, "position ="+ pos); 4359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(TEST_NAME, pos > 0); 4369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- tear down -------------- 4379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.release(); 4389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //----------------------------------------------------------------- 4429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Playback properties 4439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //---------------------------------- 4449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 1: setStereoVolume() with max volume returns SUCCESS 4469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 4479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testSetStereoVolumeMax() throws Exception { 4489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // constants for test 4499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String TEST_NAME = "testSetStereoVolumeMax"; 4509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_SR = 22050; 451a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_STEREO; 4529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 4539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 4549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 4559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- initialization -------------- 4579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 4589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 4599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project minBuffSize, TEST_MODE); 4609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte data[] = new byte[minBuffSize/2]; 4619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- test -------------- 4629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 4639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 4649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.play(); 4659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project float maxVol = AudioTrack.getMaxVolume(); 4669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(TEST_NAME, track.setStereoVolume(maxVol, maxVol) == AudioTrack.SUCCESS); 4679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- tear down -------------- 4689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.release(); 4699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 2: setStereoVolume() with min volume returns SUCCESS 4729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 4739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testSetStereoVolumeMin() throws Exception { 4749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // constants for test 4759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String TEST_NAME = "testSetStereoVolumeMin"; 4769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_SR = 22050; 477a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_STEREO; 4789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 4799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 4809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 4819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- initialization -------------- 4839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 4849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 4859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project minBuffSize, TEST_MODE); 4869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte data[] = new byte[minBuffSize/2]; 4879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- test -------------- 4889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 4899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 4909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.play(); 4919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project float minVol = AudioTrack.getMinVolume(); 4929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(TEST_NAME, track.setStereoVolume(minVol, minVol) == AudioTrack.SUCCESS); 4939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- tear down -------------- 4949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.release(); 4959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 3: setStereoVolume() with mid volume returns SUCCESS 4989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 4999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testSetStereoVolumeMid() throws Exception { 5009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // constants for test 5019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String TEST_NAME = "testSetStereoVolumeMid"; 5029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_SR = 22050; 503a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_STEREO; 5049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 5059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 5069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 5079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- initialization -------------- 5099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 5109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 5119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project minBuffSize, TEST_MODE); 5129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte data[] = new byte[minBuffSize/2]; 5139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- test -------------- 5149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 5159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 5169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.play(); 5179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project float midVol = (AudioTrack.getMaxVolume() - AudioTrack.getMinVolume()) / 2; 5189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(TEST_NAME, track.setStereoVolume(midVol, midVol) == AudioTrack.SUCCESS); 5199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- tear down -------------- 5209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.release(); 5219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 4: setPlaybackRate() with half the content rate returns SUCCESS 5249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 5259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testSetPlaybackRate() throws Exception { 5269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // constants for test 5279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String TEST_NAME = "testSetPlaybackRate"; 5289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_SR = 22050; 529a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_STEREO; 5309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 5319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 5329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 5339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- initialization -------------- 5359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 5369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 5379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project minBuffSize, TEST_MODE); 5389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte data[] = new byte[minBuffSize/2]; 5399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- test -------------- 5409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 5419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 5429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 5439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.play(); 5449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(TEST_NAME, track.setPlaybackRate((int)(TEST_SR/2)) == AudioTrack.SUCCESS); 5459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- tear down -------------- 5469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.release(); 5479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 5: setPlaybackRate(0) returns bad value error 5509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 5519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testSetPlaybackRateZero() throws Exception { 5529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // constants for test 5539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String TEST_NAME = "testSetPlaybackRateZero"; 5549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_SR = 22050; 555a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_STEREO; 5569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 5579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 5589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 5599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- initialization -------------- 5619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 5629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 5639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project minBuffSize, TEST_MODE); 5649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- test -------------- 5659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 5669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(TEST_NAME, track.setPlaybackRate(0) == AudioTrack.ERROR_BAD_VALUE); 5679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- tear down -------------- 5689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.release(); 5699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 6: setPlaybackRate() accepts values twice the output sample rate 5729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 5739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testSetPlaybackRateTwiceOutputSR() throws Exception { 5749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // constants for test 5759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String TEST_NAME = "testSetPlaybackRateTwiceOutputSR"; 5769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_SR = 22050; 577a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_STEREO; 5789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 5799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 5809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 5819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- initialization -------------- 5839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 5849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 5859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project minBuffSize, TEST_MODE); 5869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte data[] = new byte[minBuffSize/2]; 5879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int outputSR = AudioTrack.getNativeOutputSampleRate(TEST_STREAM_TYPE); 5889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- test -------------- 5899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 5909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 5919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 5929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.play(); 5939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(TEST_NAME, track.setPlaybackRate(2*outputSR) == AudioTrack.SUCCESS); 5949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- tear down -------------- 5959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.release(); 5969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 597ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 598ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //Test case 7: setPlaybackRate() and retrieve value, should be the same for half the content SR 5999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 600ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project public void testSetGetPlaybackRate() throws Exception { 6019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // constants for test 602ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final String TEST_NAME = "testSetGetPlaybackRate"; 6039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_SR = 22050; 604a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_STEREO; 6059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 6069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 6079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 6089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- initialization -------------- 6109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 6119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 6129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project minBuffSize, TEST_MODE); 6139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte data[] = new byte[minBuffSize/2]; 6149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- test -------------- 6159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 6169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 6179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 6189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.play(); 619ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.setPlaybackRate((int)(TEST_SR/2)); 620ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assertTrue(TEST_NAME, track.getPlaybackRate() == (int)(TEST_SR/2)); 6219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- tear down -------------- 6229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.release(); 6239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 624ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 6259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 8: setPlaybackRate() invalid operation if track not initialized 6269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 6279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testSetPlaybackRateUninit() throws Exception { 6289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // constants for test 6299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String TEST_NAME = "testSetPlaybackRateUninit"; 6309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_SR = 22050; 631a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 6329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 6339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STATIC; 6349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 6359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- initialization -------------- 6379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 6389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 6399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project minBuffSize, TEST_MODE); 6409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- test -------------- 6419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_NO_STATIC_DATA); 642ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assertTrue(TEST_NAME, 643ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.setPlaybackRate(TEST_SR/2) == AudioTrack.ERROR_INVALID_OPERATION); 6449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- tear down -------------- 6459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.release(); 6469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //----------------------------------------------------------------- 6499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Playback progress 6509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //---------------------------------- 6519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 1: setPlaybackHeadPosition() on playing track 6539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 6549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testSetPlaybackHeadPositionPlaying() throws Exception { 6559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // constants for test 6569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String TEST_NAME = "testSetPlaybackHeadPositionPlaying"; 6579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_SR = 22050; 658a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 6599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 6609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 6619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 6629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- initialization -------------- 6649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 6659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 6669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2*minBuffSize, TEST_MODE); 6679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte data[] = new byte[minBuffSize]; 6689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- test -------------- 6699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 6709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 6719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 6729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.play(); 6739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(TEST_NAME, 6749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.setPlaybackHeadPosition(10) == AudioTrack.ERROR_INVALID_OPERATION); 6759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- tear down -------------- 6769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.release(); 6779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 2: setPlaybackHeadPosition() on stopped track 6809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 6819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testSetPlaybackHeadPositionStopped() throws Exception { 6829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // constants for test 6839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String TEST_NAME = "testSetPlaybackHeadPositionStopped"; 6849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_SR = 22050; 685a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 6869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 6879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 6889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 6899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- initialization -------------- 6919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 6929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 6939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2*minBuffSize, TEST_MODE); 6949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte data[] = new byte[minBuffSize]; 6959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- test -------------- 6969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 6979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 6989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 6999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.play(); 7009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.stop(); 7019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getPlayState() == AudioTrack.PLAYSTATE_STOPPED); 7029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(TEST_NAME, track.setPlaybackHeadPosition(10) == AudioTrack.SUCCESS); 7039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- tear down -------------- 7049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.release(); 7059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 3: setPlaybackHeadPosition() on paused track 7089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 7099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testSetPlaybackHeadPositionPaused() throws Exception { 7109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // constants for test 7119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String TEST_NAME = "testSetPlaybackHeadPositionPaused"; 7129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_SR = 22050; 713a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 7149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 7159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 7169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 7179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- initialization -------------- 7199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 7209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 7219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2*minBuffSize, TEST_MODE); 7229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte data[] = new byte[minBuffSize]; 7239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- test -------------- 7249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 7259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 7269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 7279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.play(); 7289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.pause(); 7299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getPlayState() == AudioTrack.PLAYSTATE_PAUSED); 7309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(TEST_NAME, track.setPlaybackHeadPosition(10) == AudioTrack.SUCCESS); 7319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- tear down -------------- 7329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.release(); 7339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 4: setPlaybackHeadPosition() beyond what has been written 7369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 7379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testSetPlaybackHeadPositionTooFar() throws Exception { 7389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // constants for test 7399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String TEST_NAME = "testSetPlaybackHeadPositionTooFar"; 7409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_SR = 22050; 741a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 7429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 7439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 7449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 7459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- initialization -------------- 7479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 7489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 7499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2*minBuffSize, TEST_MODE); 7509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte data[] = new byte[minBuffSize]; 7519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // make up a frame index that's beyond what has been written: go from buffer size to frame 7529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // count (given the audio track properties), and add 77. 7539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int frameIndexTooFar = (2*minBuffSize/2) + 77; 7549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- test -------------- 7559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 7569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 7579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 7589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.play(); 7599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.stop(); 7609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getPlayState() == AudioTrack.PLAYSTATE_STOPPED); 7619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(TEST_NAME, track.setPlaybackHeadPosition(frameIndexTooFar) == AudioTrack.ERROR_BAD_VALUE); 7629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- tear down -------------- 7639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.release(); 7649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 5: setLoopPoints() fails for MODE_STREAM 7689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 7699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testSetLoopPointsStream() throws Exception { 7709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // constants for test 7719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String TEST_NAME = "testSetLoopPointsStream"; 7729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_SR = 22050; 773a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 7749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 7759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 7769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 7779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- initialization -------------- 7799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 7809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 7819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2*minBuffSize, TEST_MODE); 7829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte data[] = new byte[minBuffSize]; 7839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- test -------------- 7849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 7859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 7869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(TEST_NAME, track.setLoopPoints(2, 50, 2) == AudioTrack.ERROR_INVALID_OPERATION); 7879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- tear down -------------- 7889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.release(); 7899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 6: setLoopPoints() fails start > end 7929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 7939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testSetLoopPointsStartAfterEnd() throws Exception { 7949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // constants for test 7959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String TEST_NAME = "testSetLoopPointsStartAfterEnd"; 7969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_SR = 22050; 797a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 7989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 7999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STATIC; 8009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 8019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- initialization -------------- 8039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 8049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 8059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project minBuffSize, TEST_MODE); 8069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte data[] = new byte[minBuffSize]; 8079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- test -------------- 8089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 8099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 8109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(TEST_NAME, track.setLoopPoints(50, 0, 2) == AudioTrack.ERROR_BAD_VALUE); 8119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- tear down -------------- 8129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.release(); 8139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 6: setLoopPoints() success 8169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 8179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testSetLoopPointsSuccess() throws Exception { 8189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // constants for test 8199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String TEST_NAME = "testSetLoopPointsSuccess"; 8209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_SR = 22050; 821a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 8229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 8239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STATIC; 8249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 8259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- initialization -------------- 8279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 8289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 8299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project minBuffSize, TEST_MODE); 8309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte data[] = new byte[minBuffSize]; 8319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- test -------------- 8329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 8339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 8349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(TEST_NAME, track.setLoopPoints(0, 50, 2) == AudioTrack.SUCCESS); 8359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- tear down -------------- 8369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.release(); 8379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 7: setLoopPoints() fails with loop length bigger than content 8409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 8419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testSetLoopPointsLoopTooLong() throws Exception { 8429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // constants for test 8439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String TEST_NAME = "testSetLoopPointsLoopTooLong"; 8449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_SR = 22050; 845a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 8469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 8479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STATIC; 8489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 8499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- initialization -------------- 8519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 8529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 8539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project minBuffSize, TEST_MODE); 8549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte data[] = new byte[minBuffSize]; 8559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int dataSizeInFrames = minBuffSize/2; 8569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- test -------------- 8579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_NO_STATIC_DATA); 8589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 8599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 8609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(TEST_NAME, 8619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.setLoopPoints(10, dataSizeInFrames+20, 2) == AudioTrack.ERROR_BAD_VALUE); 8629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- tear down -------------- 8639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.release(); 8649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 865ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //Test case 8: setLoopPoints() fails with start beyond what can be written for the track 8669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 8679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testSetLoopPointsStartTooFar() throws Exception { 8689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // constants for test 8699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String TEST_NAME = "testSetLoopPointsStartTooFar"; 8709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_SR = 22050; 871a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 8729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 8739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STATIC; 8749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 8759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- initialization -------------- 8779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 8789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 8799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project minBuffSize, TEST_MODE); 8809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte data[] = new byte[minBuffSize]; 8819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int dataSizeInFrames = minBuffSize/2;//16bit data 8829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- test -------------- 8839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_NO_STATIC_DATA); 8849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 8859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 8869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(TEST_NAME, 8879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.setLoopPoints(dataSizeInFrames+20, dataSizeInFrames+50, 2) 8889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project == AudioTrack.ERROR_BAD_VALUE); 8899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- tear down -------------- 8909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.release(); 8919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 892ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 893ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //Test case 9: setLoopPoints() fails with end beyond what can be written for the track 894ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project @LargeTest 895ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project public void testSetLoopPointsEndTooFar() throws Exception { 896ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project // constants for test 897ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final String TEST_NAME = "testSetLoopPointsEndTooFar"; 898ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_SR = 22050; 899a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 900ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 901ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STATIC; 902ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 903ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 904ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- initialization -------------- 905ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 906ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 907ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project minBuffSize, TEST_MODE); 908ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project byte data[] = new byte[minBuffSize]; 909ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project int dataSizeInFrames = minBuffSize/2;//16bit data 910ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- test -------------- 911ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_NO_STATIC_DATA); 912ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.write(data, 0, data.length); 913ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 914ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assertTrue(TEST_NAME, 915ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.setLoopPoints(dataSizeInFrames-10, dataSizeInFrames+50, 2) 916ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project == AudioTrack.ERROR_BAD_VALUE); 917ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- tear down -------------- 918ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.release(); 919ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project } 920ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 921ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 922ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //----------------------------------------------------------------- 923ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project // Audio data supply 924ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //---------------------------------- 925ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 926ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //Test case 1: write() fails when supplying less data (bytes) than declared 927ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project @LargeTest 928ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project public void testWriteByteOffsetTooBig() throws Exception { 929ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project // constants for test 930ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final String TEST_NAME = "testWriteByteOffsetTooBig"; 931ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_SR = 22050; 932a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 933ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 934ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 935ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 936ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 937ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- initialization -------------- 938ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 939ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 940ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 2*minBuffSize, TEST_MODE); 941ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project byte data[] = new byte[minBuffSize]; 942ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- test -------------- 943ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 944ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assertTrue(TEST_NAME, 945ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.write(data, 10, data.length) == AudioTrack.ERROR_BAD_VALUE); 946ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- tear down -------------- 947ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.release(); 948ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project } 949ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 950ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //Test case 2: write() fails when supplying less data (shorts) than declared 951ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project @LargeTest 952ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project public void testWriteShortOffsetTooBig() throws Exception { 953ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project // constants for test 954ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final String TEST_NAME = "testWriteShortOffsetTooBig"; 955ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_SR = 22050; 956a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 957ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 958ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 959ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 960ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 961ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- initialization -------------- 962ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 963ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 964ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 2*minBuffSize, TEST_MODE); 965ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project short data[] = new short[minBuffSize/2]; 966ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- test -------------- 967ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 968ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assertTrue(TEST_NAME, 969ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.write(data, 10, data.length) == AudioTrack.ERROR_BAD_VALUE); 970ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- tear down -------------- 971ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.release(); 972ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project } 973ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 974ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //Test case 3: write() fails when supplying less data (bytes) than declared 975ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project @LargeTest 976ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project public void testWriteByteSizeTooBig() throws Exception { 977ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project // constants for test 978ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final String TEST_NAME = "testWriteByteSizeTooBig"; 979ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_SR = 22050; 980a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 981ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 982ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 983ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 984ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 985ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- initialization -------------- 986ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 987ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 988ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 2*minBuffSize, TEST_MODE); 989ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project byte data[] = new byte[minBuffSize]; 990ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- test -------------- 991ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 992ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assertTrue(TEST_NAME, 993ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.write(data, 0, data.length + 10) == AudioTrack.ERROR_BAD_VALUE); 994ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- tear down -------------- 995ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.release(); 996ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project } 997ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 998ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //Test case 4: write() fails when supplying less data (shorts) than declared 999ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project @LargeTest 1000ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project public void testWriteShortSizeTooBig() throws Exception { 1001ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project // constants for test 1002ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final String TEST_NAME = "testWriteShortSizeTooBig"; 1003ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_SR = 22050; 1004a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 1005ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 1006ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 1007ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 1008ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 1009ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- initialization -------------- 1010ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 1011ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 1012ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 2*minBuffSize, TEST_MODE); 1013ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project short data[] = new short[minBuffSize/2]; 1014ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- test -------------- 1015ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 1016ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assertTrue(TEST_NAME, 1017ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.write(data, 0, data.length + 10) == AudioTrack.ERROR_BAD_VALUE); 1018ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- tear down -------------- 1019ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.release(); 1020ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project } 1021ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 1022ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //Test case 5: write() fails with negative offset 1023ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project @LargeTest 1024ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project public void testWriteByteNegativeOffset() throws Exception { 1025ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project // constants for test 1026ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final String TEST_NAME = "testWriteByteNegativeOffset"; 1027ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_SR = 22050; 1028a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 1029ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 1030ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 1031ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 1032ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 1033ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- initialization -------------- 1034ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 1035ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 1036ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 2*minBuffSize, TEST_MODE); 1037ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project byte data[] = new byte[minBuffSize]; 1038ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- test -------------- 1039ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 1040ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assertTrue(TEST_NAME, 1041ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.write(data, -10, data.length - 10) == AudioTrack.ERROR_BAD_VALUE); 1042ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- tear down -------------- 1043ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.release(); 1044ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project } 1045ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 1046ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //Test case 6: write() fails with negative offset 1047ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project @LargeTest 1048ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project public void testWriteShortNegativeOffset() throws Exception { 1049ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project // constants for test 1050ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final String TEST_NAME = "testWriteShortNegativeOffset"; 1051ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_SR = 22050; 1052a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 1053ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 1054ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 1055ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 1056ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 1057ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- initialization -------------- 1058ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 1059ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 1060ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 2*minBuffSize, TEST_MODE); 1061ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project short data[] = new short[minBuffSize/2]; 1062ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- test -------------- 1063ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 1064ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assertTrue(TEST_NAME, 1065ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.write(data, -10, data.length - 10) == AudioTrack.ERROR_BAD_VALUE); 1066ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- tear down -------------- 1067ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.release(); 1068ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project } 1069ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 1070ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //Test case 7: write() fails with negative size 1071ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project @LargeTest 1072ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project public void testWriteByteNegativeSize() throws Exception { 1073ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project // constants for test 1074ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final String TEST_NAME = "testWriteByteNegativeSize"; 1075ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_SR = 22050; 1076a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 1077ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 1078ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 1079ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 1080ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 1081ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- initialization -------------- 1082ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 1083ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 1084ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 2*minBuffSize, TEST_MODE); 1085ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project byte data[] = new byte[minBuffSize]; 1086ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- test -------------- 1087ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 1088ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assertTrue(TEST_NAME, 1089ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.write(data, 0, -10) == AudioTrack.ERROR_BAD_VALUE); 1090ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- tear down -------------- 1091ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.release(); 1092ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project } 1093ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 1094ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //Test case 8: write() fails with negative size 1095ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project @LargeTest 1096ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project public void testWriteShortNegativeSize() throws Exception { 1097ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project // constants for test 1098ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final String TEST_NAME = "testWriteShortNegativeSize"; 1099ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_SR = 22050; 1100a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 1101ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 1102ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 1103ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 1104ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 1105ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- initialization -------------- 1106ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 1107ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 1108ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 2*minBuffSize, TEST_MODE); 1109ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project short data[] = new short[minBuffSize/2]; 1110ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- test -------------- 1111ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 1112ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assertTrue(TEST_NAME, 1113ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.write(data, 0, -10) == AudioTrack.ERROR_BAD_VALUE); 1114ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- tear down -------------- 1115ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.release(); 1116ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project } 1117ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 1118ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //Test case 9: write() succeeds and returns the size that was written for 16bit 1119ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project @LargeTest 1120ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project public void testWriteByte() throws Exception { 1121ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project // constants for test 1122ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final String TEST_NAME = "testWriteByte"; 1123ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_SR = 22050; 1124a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 1125ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 1126ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 1127ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 1128ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 1129ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- initialization -------------- 1130ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 1131ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 1132ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 2*minBuffSize, TEST_MODE); 1133ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project byte data[] = new byte[minBuffSize]; 1134ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- test -------------- 1135ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 1136ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assertTrue(TEST_NAME, 1137ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.write(data, 0, data.length) == data.length); 1138ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- tear down -------------- 1139ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.release(); 1140ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project } 1141ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 1142ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //Test case 10: write() succeeds and returns the size that was written for 16bit 1143ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project @LargeTest 1144ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project public void testWriteShort() throws Exception { 1145ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project // constants for test 1146ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final String TEST_NAME = "testWriteShort"; 1147ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_SR = 22050; 1148a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 1149ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 1150ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 1151ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 1152ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 1153ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- initialization -------------- 1154ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 1155ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 1156ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 2*minBuffSize, TEST_MODE); 1157ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project short data[] = new short[minBuffSize/2]; 1158ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- test -------------- 1159ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 1160ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assertTrue(TEST_NAME, 1161ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.write(data, 0, data.length) == data.length); 1162ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- tear down -------------- 1163ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.release(); 1164ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project } 1165ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 1166ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //Test case 11: write() succeeds and returns the size that was written for 8bit 1167ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project @LargeTest 1168ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project public void testWriteByte8bit() throws Exception { 1169ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project // constants for test 1170ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final String TEST_NAME = "testWriteByte8bit"; 1171ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_SR = 22050; 1172a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 1173ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_8BIT; 1174ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 1175ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 1176ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 1177ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- initialization -------------- 1178ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 1179ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 1180ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 2*minBuffSize, TEST_MODE); 1181ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project byte data[] = new byte[minBuffSize]; 1182ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- test -------------- 1183ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 1184ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assertTrue(TEST_NAME, 1185ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.write(data, 0, data.length) == data.length); 1186ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- tear down -------------- 1187ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.release(); 1188ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project } 1189ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 1190ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //Test case 12: write() succeeds and returns the size that was written for 8bit 1191ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project @LargeTest 1192ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project public void testWriteShort8bit() throws Exception { 1193ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project // constants for test 1194ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final String TEST_NAME = "testWriteShort8bit"; 1195ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_SR = 22050; 1196a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 1197ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_8BIT; 1198ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 1199ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 1200ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 1201ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- initialization -------------- 1202ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 1203ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 1204ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 2*minBuffSize, TEST_MODE); 1205ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project short data[] = new short[minBuffSize/2]; 1206ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- test -------------- 1207ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 1208ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assertTrue(TEST_NAME, 1209ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.write(data, 0, data.length) == data.length); 1210ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- tear down -------------- 1211ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.release(); 1212ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project } 12139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 121474e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang //----------------------------------------------------------------- 121574e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang // Getters 121674e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang //---------------------------------- 121774e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang 121874e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang //Test case 1: getMinBufferSize() return ERROR_BAD_VALUE if SR < 4000 121974e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang @LargeTest 122074e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang public void testGetMinBufferSizeTooLowSR() throws Exception { 122174e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang // constant for test 122274e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang final String TEST_NAME = "testGetMinBufferSizeTooLowSR"; 122374e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang final int TEST_SR = 3999; 1224a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 122574e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang final int TEST_FORMAT = AudioFormat.ENCODING_PCM_8BIT; 122674e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang final int TEST_MODE = AudioTrack.MODE_STREAM; 122774e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 122874e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang 122974e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang //-------- initialization & test -------------- 123074e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang assertTrue(TEST_NAME, 123174e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT) 123274e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang == AudioTrack.ERROR_BAD_VALUE); 123374e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang } 123474e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang 123574e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang //Test case 2: getMinBufferSize() return ERROR_BAD_VALUE if SR > 48000 123674e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang @LargeTest 123774e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang public void testGetMinBufferSizeTooHighSR() throws Exception { 123874e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang // constant for testg 123974e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang final String TEST_NAME = "testGetMinBufferSizeTooHighSR"; 124074e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang final int TEST_SR = 48001; 1241a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 124274e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang final int TEST_FORMAT = AudioFormat.ENCODING_PCM_8BIT; 124374e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang final int TEST_MODE = AudioTrack.MODE_STREAM; 124474e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 124574e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang 124674e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang //-------- initialization & test -------------- 124774e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang assertTrue(TEST_NAME, 124874e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT) 124974e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang == AudioTrack.ERROR_BAD_VALUE); 125074e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang } 125174e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang 12529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 1253