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; 38928cae0436826145dcc60023598f2c55f06479b63Jimmy Dalqvist final int TEST_LOOP_CNT = 10; 3909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- initialization -------------- 3929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 3939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 3949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project minBuffSize, TEST_MODE); 3959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte data[] = new byte[minBuffSize/2]; 3969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- test -------------- 3979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 3989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 3999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 4009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.play(); 4019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Thread.sleep(100); 4029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.stop(); 40328cae0436826145dcc60023598f2c55f06479b63Jimmy Dalqvist int count = 0; 40428cae0436826145dcc60023598f2c55f06479b63Jimmy Dalqvist int pos; 40528cae0436826145dcc60023598f2c55f06479b63Jimmy Dalqvist do { 40628cae0436826145dcc60023598f2c55f06479b63Jimmy Dalqvist Thread.sleep(200); 40728cae0436826145dcc60023598f2c55f06479b63Jimmy Dalqvist pos = track.getPlaybackHeadPosition(); 40828cae0436826145dcc60023598f2c55f06479b63Jimmy Dalqvist count++; 40928cae0436826145dcc60023598f2c55f06479b63Jimmy Dalqvist } while((pos != 0) && (count < TEST_LOOP_CNT)); 41028cae0436826145dcc60023598f2c55f06479b63Jimmy Dalqvist log(TEST_NAME, "position =" + pos + ", read count ="+count); 4119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(TEST_NAME, pos == 0); 4129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- tear down -------------- 4139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.release(); 4149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 4: getPlaybackHeadPosition() is > 0 after play(); pause(); 4179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 4189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testPlaybackHeadPositionAfterPause() throws Exception { 4199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // constants for test 4209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String TEST_NAME = "testPlaybackHeadPositionAfterPause"; 4219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_SR = 22050; 422a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_STEREO; 4239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 4249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 4259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 4269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- initialization -------------- 4289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 4299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 4309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project minBuffSize, TEST_MODE); 4319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte data[] = new byte[minBuffSize/2]; 4329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- test -------------- 4339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 4349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 4359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 4369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.play(); 4379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Thread.sleep(100); 4389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.pause(); 4399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int pos = track.getPlaybackHeadPosition(); 4409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project log(TEST_NAME, "position ="+ pos); 4419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(TEST_NAME, pos > 0); 4429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- tear down -------------- 4439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.release(); 4449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //----------------------------------------------------------------- 4489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Playback properties 4499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //---------------------------------- 4509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 1: setStereoVolume() with max volume returns SUCCESS 4529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 4539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testSetStereoVolumeMax() throws Exception { 4549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // constants for test 4559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String TEST_NAME = "testSetStereoVolumeMax"; 4569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_SR = 22050; 457a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_STEREO; 4589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 4599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 4609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 4619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- initialization -------------- 4639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 4649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 4659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project minBuffSize, TEST_MODE); 4669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte data[] = new byte[minBuffSize/2]; 4679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- test -------------- 4689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 4699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 4709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.play(); 4719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project float maxVol = AudioTrack.getMaxVolume(); 4729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(TEST_NAME, track.setStereoVolume(maxVol, maxVol) == AudioTrack.SUCCESS); 4739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- tear down -------------- 4749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.release(); 4759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 2: setStereoVolume() with min volume returns SUCCESS 4789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 4799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testSetStereoVolumeMin() throws Exception { 4809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // constants for test 4819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String TEST_NAME = "testSetStereoVolumeMin"; 4829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_SR = 22050; 483a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_STEREO; 4849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 4859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 4869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 4879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- initialization -------------- 4899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 4909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 4919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project minBuffSize, TEST_MODE); 4929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte data[] = new byte[minBuffSize/2]; 4939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- test -------------- 4949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 4959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 4969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.play(); 4979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project float minVol = AudioTrack.getMinVolume(); 4989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(TEST_NAME, track.setStereoVolume(minVol, minVol) == AudioTrack.SUCCESS); 4999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- tear down -------------- 5009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.release(); 5019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 3: setStereoVolume() with mid volume returns SUCCESS 5049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 5059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testSetStereoVolumeMid() throws Exception { 5069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // constants for test 5079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String TEST_NAME = "testSetStereoVolumeMid"; 5089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_SR = 22050; 509a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_STEREO; 5109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 5119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 5129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 5139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- initialization -------------- 5159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 5169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 5179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project minBuffSize, TEST_MODE); 5189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte data[] = new byte[minBuffSize/2]; 5199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- test -------------- 5209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 5219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 5229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.play(); 5239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project float midVol = (AudioTrack.getMaxVolume() - AudioTrack.getMinVolume()) / 2; 5249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(TEST_NAME, track.setStereoVolume(midVol, midVol) == AudioTrack.SUCCESS); 5259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- tear down -------------- 5269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.release(); 5279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 4: setPlaybackRate() with half the content rate returns SUCCESS 5309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 5319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testSetPlaybackRate() throws Exception { 5329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // constants for test 5339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String TEST_NAME = "testSetPlaybackRate"; 5349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_SR = 22050; 535a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_STEREO; 5369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 5379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 5389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 5399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- initialization -------------- 5419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 5429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 5439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project minBuffSize, TEST_MODE); 5449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte data[] = new byte[minBuffSize/2]; 5459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- test -------------- 5469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 5479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 5489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 5499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.play(); 5509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(TEST_NAME, track.setPlaybackRate((int)(TEST_SR/2)) == AudioTrack.SUCCESS); 5519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- tear down -------------- 5529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.release(); 5539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 5: setPlaybackRate(0) returns bad value error 5569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 5579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testSetPlaybackRateZero() throws Exception { 5589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // constants for test 5599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String TEST_NAME = "testSetPlaybackRateZero"; 5609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_SR = 22050; 561a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_STEREO; 5629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 5639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 5649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 5659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- initialization -------------- 5679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 5689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 5699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project minBuffSize, TEST_MODE); 5709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- test -------------- 5719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 5729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(TEST_NAME, track.setPlaybackRate(0) == AudioTrack.ERROR_BAD_VALUE); 5739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- tear down -------------- 5749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.release(); 5759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 6: setPlaybackRate() accepts values twice the output sample rate 5789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 5799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testSetPlaybackRateTwiceOutputSR() throws Exception { 5809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // constants for test 5819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String TEST_NAME = "testSetPlaybackRateTwiceOutputSR"; 5829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_SR = 22050; 583a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_STEREO; 5849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 5859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 5869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 5879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- initialization -------------- 5899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 5909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 5919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project minBuffSize, TEST_MODE); 5929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte data[] = new byte[minBuffSize/2]; 5939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int outputSR = AudioTrack.getNativeOutputSampleRate(TEST_STREAM_TYPE); 5949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- test -------------- 5959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 5969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 5979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 5989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.play(); 5999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(TEST_NAME, track.setPlaybackRate(2*outputSR) == AudioTrack.SUCCESS); 6009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- tear down -------------- 6019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.release(); 6029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 603ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 604ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //Test case 7: setPlaybackRate() and retrieve value, should be the same for half the content SR 6059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 606ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project public void testSetGetPlaybackRate() throws Exception { 6079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // constants for test 608ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final String TEST_NAME = "testSetGetPlaybackRate"; 6099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_SR = 22050; 610a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_STEREO; 6119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 6129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 6139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 6149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- initialization -------------- 6169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 6179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 6189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project minBuffSize, TEST_MODE); 6199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte data[] = new byte[minBuffSize/2]; 6209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- test -------------- 6219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 6229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 6239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 6249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.play(); 625ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.setPlaybackRate((int)(TEST_SR/2)); 626ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assertTrue(TEST_NAME, track.getPlaybackRate() == (int)(TEST_SR/2)); 6279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- tear down -------------- 6289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.release(); 6299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 630ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 6319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 8: setPlaybackRate() invalid operation if track not initialized 6329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 6339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testSetPlaybackRateUninit() throws Exception { 6349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // constants for test 6359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String TEST_NAME = "testSetPlaybackRateUninit"; 6369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_SR = 22050; 637a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 6389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 6399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STATIC; 6409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 6419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- initialization -------------- 6439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 6449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 6459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project minBuffSize, TEST_MODE); 6469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- test -------------- 6479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_NO_STATIC_DATA); 648ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assertTrue(TEST_NAME, 649ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.setPlaybackRate(TEST_SR/2) == AudioTrack.ERROR_INVALID_OPERATION); 6509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- tear down -------------- 6519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.release(); 6529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //----------------------------------------------------------------- 6559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Playback progress 6569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //---------------------------------- 6579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 1: setPlaybackHeadPosition() on playing track 6599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 6609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testSetPlaybackHeadPositionPlaying() throws Exception { 6619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // constants for test 6629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String TEST_NAME = "testSetPlaybackHeadPositionPlaying"; 6639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_SR = 22050; 664a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 6659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 6669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 6679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 6689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- initialization -------------- 6709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 6719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 6729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2*minBuffSize, TEST_MODE); 6739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte data[] = new byte[minBuffSize]; 6749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- test -------------- 6759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 6769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 6779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 6789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.play(); 6799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(TEST_NAME, 6809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.setPlaybackHeadPosition(10) == AudioTrack.ERROR_INVALID_OPERATION); 6819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- tear down -------------- 6829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.release(); 6839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 2: setPlaybackHeadPosition() on stopped track 6869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 6879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testSetPlaybackHeadPositionStopped() throws Exception { 6889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // constants for test 6899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String TEST_NAME = "testSetPlaybackHeadPositionStopped"; 6909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_SR = 22050; 691a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 6929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 6939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 6949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 6959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- initialization -------------- 6979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 6989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 6999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2*minBuffSize, TEST_MODE); 7009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte data[] = new byte[minBuffSize]; 7019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- test -------------- 7029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 7039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 7049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 7059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.play(); 7069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.stop(); 7079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getPlayState() == AudioTrack.PLAYSTATE_STOPPED); 7089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(TEST_NAME, track.setPlaybackHeadPosition(10) == AudioTrack.SUCCESS); 7099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- tear down -------------- 7109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.release(); 7119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 3: setPlaybackHeadPosition() on paused track 7149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 7159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testSetPlaybackHeadPositionPaused() throws Exception { 7169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // constants for test 7179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String TEST_NAME = "testSetPlaybackHeadPositionPaused"; 7189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_SR = 22050; 719a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 7209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 7219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 7229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 7239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- initialization -------------- 7259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 7269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 7279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2*minBuffSize, TEST_MODE); 7289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte data[] = new byte[minBuffSize]; 7299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- test -------------- 7309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 7319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 7329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 7339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.play(); 7349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.pause(); 7359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getPlayState() == AudioTrack.PLAYSTATE_PAUSED); 7369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(TEST_NAME, track.setPlaybackHeadPosition(10) == AudioTrack.SUCCESS); 7379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- tear down -------------- 7389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.release(); 7399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 4: setPlaybackHeadPosition() beyond what has been written 7429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 7439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testSetPlaybackHeadPositionTooFar() throws Exception { 7449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // constants for test 7459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String TEST_NAME = "testSetPlaybackHeadPositionTooFar"; 7469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_SR = 22050; 747a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 7489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 7499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 7509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 7519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- initialization -------------- 7539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 7549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 7559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2*minBuffSize, TEST_MODE); 7569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte data[] = new byte[minBuffSize]; 7579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // make up a frame index that's beyond what has been written: go from buffer size to frame 7589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // count (given the audio track properties), and add 77. 7599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int frameIndexTooFar = (2*minBuffSize/2) + 77; 7609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- test -------------- 7619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 7629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 7639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 7649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.play(); 7659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.stop(); 7669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getPlayState() == AudioTrack.PLAYSTATE_STOPPED); 7679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(TEST_NAME, track.setPlaybackHeadPosition(frameIndexTooFar) == AudioTrack.ERROR_BAD_VALUE); 7689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- tear down -------------- 7699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.release(); 7709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 5: setLoopPoints() fails for MODE_STREAM 7749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 7759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testSetLoopPointsStream() throws Exception { 7769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // constants for test 7779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String TEST_NAME = "testSetLoopPointsStream"; 7789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_SR = 22050; 779a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 7809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 7819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 7829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 7839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- initialization -------------- 7859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 7869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 7879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2*minBuffSize, TEST_MODE); 7889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte data[] = new byte[minBuffSize]; 7899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- test -------------- 7909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 7919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 7929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(TEST_NAME, track.setLoopPoints(2, 50, 2) == AudioTrack.ERROR_INVALID_OPERATION); 7939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- tear down -------------- 7949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.release(); 7959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 6: setLoopPoints() fails start > end 7989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 7999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testSetLoopPointsStartAfterEnd() throws Exception { 8009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // constants for test 8019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String TEST_NAME = "testSetLoopPointsStartAfterEnd"; 8029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_SR = 22050; 803a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 8049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 8059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STATIC; 8069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 8079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- initialization -------------- 8099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 8109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 8119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project minBuffSize, TEST_MODE); 8129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte data[] = new byte[minBuffSize]; 8139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- test -------------- 8149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 8159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 8169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(TEST_NAME, track.setLoopPoints(50, 0, 2) == AudioTrack.ERROR_BAD_VALUE); 8179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- tear down -------------- 8189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.release(); 8199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 6: setLoopPoints() success 8229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 8239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testSetLoopPointsSuccess() throws Exception { 8249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // constants for test 8259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String TEST_NAME = "testSetLoopPointsSuccess"; 8269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_SR = 22050; 827a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 8289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 8299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STATIC; 8309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 8319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- initialization -------------- 8339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 8349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 8359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project minBuffSize, TEST_MODE); 8369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte data[] = new byte[minBuffSize]; 8379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- test -------------- 8389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 8399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 8409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(TEST_NAME, track.setLoopPoints(0, 50, 2) == AudioTrack.SUCCESS); 8419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- tear down -------------- 8429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.release(); 8439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //Test case 7: setLoopPoints() fails with loop length bigger than content 8469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 8479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testSetLoopPointsLoopTooLong() throws Exception { 8489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // constants for test 8499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String TEST_NAME = "testSetLoopPointsLoopTooLong"; 8509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_SR = 22050; 851a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 8529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 8539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STATIC; 8549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 8559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- initialization -------------- 8579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 8589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 8599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project minBuffSize, TEST_MODE); 8609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte data[] = new byte[minBuffSize]; 8619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int dataSizeInFrames = minBuffSize/2; 8629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- test -------------- 8639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_NO_STATIC_DATA); 8649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 8659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 8669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(TEST_NAME, 8679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.setLoopPoints(10, dataSizeInFrames+20, 2) == AudioTrack.ERROR_BAD_VALUE); 8689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- tear down -------------- 8699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.release(); 8709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 871ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //Test case 8: setLoopPoints() fails with start beyond what can be written for the track 8729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 8739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testSetLoopPointsStartTooFar() throws Exception { 8749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // constants for test 8759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String TEST_NAME = "testSetLoopPointsStartTooFar"; 8769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_SR = 22050; 877a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 8789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 8799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STATIC; 8809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 8819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- initialization -------------- 8839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 8849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 8859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project minBuffSize, TEST_MODE); 8869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte data[] = new byte[minBuffSize]; 8879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int dataSizeInFrames = minBuffSize/2;//16bit data 8889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- test -------------- 8899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_NO_STATIC_DATA); 8909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.write(data, 0, data.length); 8919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 8929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(TEST_NAME, 8939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.setLoopPoints(dataSizeInFrames+20, dataSizeInFrames+50, 2) 8949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project == AudioTrack.ERROR_BAD_VALUE); 8959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //-------- tear down -------------- 8969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project track.release(); 8979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 898ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 899ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //Test case 9: setLoopPoints() fails with end beyond what can be written for the track 900ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project @LargeTest 901ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project public void testSetLoopPointsEndTooFar() throws Exception { 902ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project // constants for test 903ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final String TEST_NAME = "testSetLoopPointsEndTooFar"; 904ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_SR = 22050; 905a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 906ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 907ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STATIC; 908ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 909ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 910ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- initialization -------------- 911ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 912ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 913ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project minBuffSize, TEST_MODE); 914ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project byte data[] = new byte[minBuffSize]; 915ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project int dataSizeInFrames = minBuffSize/2;//16bit data 916ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- test -------------- 917ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_NO_STATIC_DATA); 918ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.write(data, 0, data.length); 919ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 920ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assertTrue(TEST_NAME, 921ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.setLoopPoints(dataSizeInFrames-10, dataSizeInFrames+50, 2) 922ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project == AudioTrack.ERROR_BAD_VALUE); 923ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- tear down -------------- 924ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.release(); 925ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project } 926ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 927ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 928ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //----------------------------------------------------------------- 929ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project // Audio data supply 930ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //---------------------------------- 931ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 932ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //Test case 1: write() fails when supplying less data (bytes) than declared 933ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project @LargeTest 934ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project public void testWriteByteOffsetTooBig() throws Exception { 935ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project // constants for test 936ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final String TEST_NAME = "testWriteByteOffsetTooBig"; 937ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_SR = 22050; 938a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 939ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 940ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 941ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 942ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 943ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- initialization -------------- 944ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 945ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 946ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 2*minBuffSize, TEST_MODE); 947ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project byte data[] = new byte[minBuffSize]; 948ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- test -------------- 949ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 950ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assertTrue(TEST_NAME, 951ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.write(data, 10, data.length) == AudioTrack.ERROR_BAD_VALUE); 952ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- tear down -------------- 953ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.release(); 954ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project } 955ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 956ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //Test case 2: write() fails when supplying less data (shorts) than declared 957ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project @LargeTest 958ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project public void testWriteShortOffsetTooBig() throws Exception { 959ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project // constants for test 960ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final String TEST_NAME = "testWriteShortOffsetTooBig"; 961ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_SR = 22050; 962a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 963ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 964ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 965ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 966ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 967ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- initialization -------------- 968ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 969ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 970ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 2*minBuffSize, TEST_MODE); 971ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project short data[] = new short[minBuffSize/2]; 972ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- test -------------- 973ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 974ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assertTrue(TEST_NAME, 975ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.write(data, 10, data.length) == AudioTrack.ERROR_BAD_VALUE); 976ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- tear down -------------- 977ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.release(); 978ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project } 979ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 980ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //Test case 3: write() fails when supplying less data (bytes) than declared 981ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project @LargeTest 982ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project public void testWriteByteSizeTooBig() throws Exception { 983ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project // constants for test 984ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final String TEST_NAME = "testWriteByteSizeTooBig"; 985ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_SR = 22050; 986a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 987ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 988ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 989ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 990ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 991ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- initialization -------------- 992ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 993ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 994ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 2*minBuffSize, TEST_MODE); 995ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project byte data[] = new byte[minBuffSize]; 996ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- test -------------- 997ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 998ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assertTrue(TEST_NAME, 999ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.write(data, 0, data.length + 10) == AudioTrack.ERROR_BAD_VALUE); 1000ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- tear down -------------- 1001ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.release(); 1002ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project } 1003ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 1004ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //Test case 4: write() fails when supplying less data (shorts) than declared 1005ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project @LargeTest 1006ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project public void testWriteShortSizeTooBig() throws Exception { 1007ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project // constants for test 1008ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final String TEST_NAME = "testWriteShortSizeTooBig"; 1009ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_SR = 22050; 1010a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 1011ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 1012ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 1013ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 1014ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 1015ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- initialization -------------- 1016ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 1017ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 1018ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 2*minBuffSize, TEST_MODE); 1019ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project short data[] = new short[minBuffSize/2]; 1020ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- test -------------- 1021ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 1022ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assertTrue(TEST_NAME, 1023ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.write(data, 0, data.length + 10) == AudioTrack.ERROR_BAD_VALUE); 1024ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- tear down -------------- 1025ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.release(); 1026ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project } 1027ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 1028ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //Test case 5: write() fails with negative offset 1029ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project @LargeTest 1030ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project public void testWriteByteNegativeOffset() throws Exception { 1031ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project // constants for test 1032ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final String TEST_NAME = "testWriteByteNegativeOffset"; 1033ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_SR = 22050; 1034a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 1035ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 1036ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 1037ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 1038ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 1039ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- initialization -------------- 1040ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 1041ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 1042ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 2*minBuffSize, TEST_MODE); 1043ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project byte data[] = new byte[minBuffSize]; 1044ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- test -------------- 1045ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 1046ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assertTrue(TEST_NAME, 1047ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.write(data, -10, data.length - 10) == AudioTrack.ERROR_BAD_VALUE); 1048ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- tear down -------------- 1049ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.release(); 1050ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project } 1051ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 1052ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //Test case 6: write() fails with negative offset 1053ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project @LargeTest 1054ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project public void testWriteShortNegativeOffset() throws Exception { 1055ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project // constants for test 1056ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final String TEST_NAME = "testWriteShortNegativeOffset"; 1057ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_SR = 22050; 1058a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 1059ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 1060ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 1061ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 1062ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 1063ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- initialization -------------- 1064ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 1065ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 1066ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 2*minBuffSize, TEST_MODE); 1067ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project short data[] = new short[minBuffSize/2]; 1068ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- test -------------- 1069ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 1070ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assertTrue(TEST_NAME, 1071ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.write(data, -10, data.length - 10) == AudioTrack.ERROR_BAD_VALUE); 1072ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- tear down -------------- 1073ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.release(); 1074ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project } 1075ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 1076ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //Test case 7: write() fails with negative size 1077ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project @LargeTest 1078ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project public void testWriteByteNegativeSize() throws Exception { 1079ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project // constants for test 1080ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final String TEST_NAME = "testWriteByteNegativeSize"; 1081ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_SR = 22050; 1082a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 1083ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 1084ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 1085ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 1086ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 1087ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- initialization -------------- 1088ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 1089ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 1090ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 2*minBuffSize, TEST_MODE); 1091ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project byte data[] = new byte[minBuffSize]; 1092ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- test -------------- 1093ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 1094ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assertTrue(TEST_NAME, 1095ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.write(data, 0, -10) == AudioTrack.ERROR_BAD_VALUE); 1096ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- tear down -------------- 1097ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.release(); 1098ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project } 1099ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 1100ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //Test case 8: write() fails with negative size 1101ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project @LargeTest 1102ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project public void testWriteShortNegativeSize() throws Exception { 1103ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project // constants for test 1104ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final String TEST_NAME = "testWriteShortNegativeSize"; 1105ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_SR = 22050; 1106a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 1107ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 1108ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 1109ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 1110ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 1111ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- initialization -------------- 1112ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 1113ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 1114ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 2*minBuffSize, TEST_MODE); 1115ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project short data[] = new short[minBuffSize/2]; 1116ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- test -------------- 1117ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 1118ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assertTrue(TEST_NAME, 1119ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.write(data, 0, -10) == AudioTrack.ERROR_BAD_VALUE); 1120ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- tear down -------------- 1121ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.release(); 1122ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project } 1123ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 1124ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //Test case 9: write() succeeds and returns the size that was written for 16bit 1125ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project @LargeTest 1126ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project public void testWriteByte() throws Exception { 1127ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project // constants for test 1128ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final String TEST_NAME = "testWriteByte"; 1129ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_SR = 22050; 1130a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 1131ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 1132ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 1133ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 1134ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 1135ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- initialization -------------- 1136ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 1137ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 1138ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 2*minBuffSize, TEST_MODE); 1139ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project byte data[] = new byte[minBuffSize]; 1140ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- test -------------- 1141ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 1142ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assertTrue(TEST_NAME, 1143ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.write(data, 0, data.length) == data.length); 1144ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- tear down -------------- 1145ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.release(); 1146ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project } 1147ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 1148ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //Test case 10: write() succeeds and returns the size that was written for 16bit 1149ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project @LargeTest 1150ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project public void testWriteShort() throws Exception { 1151ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project // constants for test 1152ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final String TEST_NAME = "testWriteShort"; 1153ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_SR = 22050; 1154a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 1155ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 1156ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 1157ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 1158ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 1159ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- initialization -------------- 1160ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 1161ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 1162ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 2*minBuffSize, TEST_MODE); 1163ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project short data[] = new short[minBuffSize/2]; 1164ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- test -------------- 1165ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 1166ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assertTrue(TEST_NAME, 1167ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.write(data, 0, data.length) == data.length); 1168ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- tear down -------------- 1169ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.release(); 1170ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project } 1171ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 1172ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //Test case 11: write() succeeds and returns the size that was written for 8bit 1173ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project @LargeTest 1174ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project public void testWriteByte8bit() throws Exception { 1175ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project // constants for test 1176ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final String TEST_NAME = "testWriteByte8bit"; 1177ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_SR = 22050; 1178a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 1179ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_8BIT; 1180ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 1181ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 1182ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 1183ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- initialization -------------- 1184ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 1185ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 1186ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 2*minBuffSize, TEST_MODE); 1187ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project byte data[] = new byte[minBuffSize]; 1188ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- test -------------- 1189ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 1190ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assertTrue(TEST_NAME, 1191ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.write(data, 0, data.length) == data.length); 1192ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- tear down -------------- 1193ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.release(); 1194ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project } 1195ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 1196ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //Test case 12: write() succeeds and returns the size that was written for 8bit 1197ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project @LargeTest 1198ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project public void testWriteShort8bit() throws Exception { 1199ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project // constants for test 1200ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final String TEST_NAME = "testWriteShort8bit"; 1201ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_SR = 22050; 1202a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 1203ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_FORMAT = AudioFormat.ENCODING_PCM_8BIT; 1204ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_MODE = AudioTrack.MODE_STREAM; 1205ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 1206ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 1207ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- initialization -------------- 1208ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT); 1209ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, 1210ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project 2*minBuffSize, TEST_MODE); 1211ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project short data[] = new short[minBuffSize/2]; 1212ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- test -------------- 1213ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assumeTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED); 1214ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project assertTrue(TEST_NAME, 1215ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.write(data, 0, data.length) == data.length); 1216ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project //-------- tear down -------------- 1217ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project track.release(); 1218ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project } 12199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 122074e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang //----------------------------------------------------------------- 122174e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang // Getters 122274e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang //---------------------------------- 122374e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang 122474e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang //Test case 1: getMinBufferSize() return ERROR_BAD_VALUE if SR < 4000 122574e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang @LargeTest 122674e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang public void testGetMinBufferSizeTooLowSR() throws Exception { 122774e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang // constant for test 122874e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang final String TEST_NAME = "testGetMinBufferSizeTooLowSR"; 122974e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang final int TEST_SR = 3999; 1230a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 123174e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang final int TEST_FORMAT = AudioFormat.ENCODING_PCM_8BIT; 123274e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang final int TEST_MODE = AudioTrack.MODE_STREAM; 123374e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 123474e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang 123574e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang //-------- initialization & test -------------- 123674e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang assertTrue(TEST_NAME, 123774e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT) 123874e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang == AudioTrack.ERROR_BAD_VALUE); 123974e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang } 124074e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang 124174e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang //Test case 2: getMinBufferSize() return ERROR_BAD_VALUE if SR > 48000 124274e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang @LargeTest 124374e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang public void testGetMinBufferSizeTooHighSR() throws Exception { 124474e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang // constant for testg 124574e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang final String TEST_NAME = "testGetMinBufferSizeTooHighSR"; 124674e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang final int TEST_SR = 48001; 1247a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO; 124874e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang final int TEST_FORMAT = AudioFormat.ENCODING_PCM_8BIT; 124974e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang final int TEST_MODE = AudioTrack.MODE_STREAM; 125074e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC; 125174e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang 125274e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang //-------- initialization & test -------------- 125374e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang assertTrue(TEST_NAME, 125474e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT) 125574e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang == AudioTrack.ERROR_BAD_VALUE); 125674e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang } 125774e77fba25169c3ede762d4d7917ab65ebcbc352Xia Wang 12589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 1259