| /* |
| * Copyright (C) 2008 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package com.android.mediaframeworktest.functional; |
| |
| |
| //import android.content.Resources; |
| import android.util.Log; |
| |
| import android.media.ToneGenerator; |
| import android.media.AudioManager; |
| |
| /** |
| * Junit / Instrumentation test case for the Sim tones tests |
| |
| */ |
| public class TonesAutoTest { |
| private static String TAG = "TonesAutoTest"; |
| |
| // Test all DTMF tones one by one |
| public static boolean tonesDtmfTest() throws Exception { |
| Log.v(TAG, "DTMF tones test"); |
| ToneGenerator toneGen; |
| int type; |
| boolean result = true; |
| |
| toneGen = new ToneGenerator(AudioManager.STREAM_MUSIC, 100); |
| |
| for (type = ToneGenerator.TONE_DTMF_0; type <= ToneGenerator.TONE_DTMF_D; type++) { |
| if (toneGen.startTone(type)) { |
| Thread.sleep(200); |
| toneGen.stopTone(); |
| Thread.sleep(100); |
| } else { |
| result = false; |
| break; |
| } |
| } |
| |
| toneGen.release(); |
| return result; |
| } |
| |
| // Test all supervisory tones one by one |
| public static boolean tonesSupervisoryTest() throws Exception { |
| Log.v(TAG, "Supervisory tones test"); |
| ToneGenerator toneGen; |
| int type; |
| boolean result = true; |
| |
| toneGen = new ToneGenerator(AudioManager.STREAM_MUSIC, 100); |
| |
| for (type = ToneGenerator.TONE_SUP_DIAL; |
| type <= ToneGenerator.TONE_SUP_RINGTONE; type++) { |
| if (toneGen.startTone(type)) { |
| Thread.sleep(2000); |
| toneGen.stopTone(); |
| Thread.sleep(200); |
| } else { |
| result = false; |
| break; |
| } |
| } |
| |
| for (type = ToneGenerator.TONE_SUP_INTERCEPT; |
| type <= ToneGenerator.TONE_SUP_PIP; type++) { |
| if (toneGen.startTone(type)) { |
| Thread.sleep(5000); |
| toneGen.stopTone(); |
| Thread.sleep(200); |
| } else { |
| result = false; |
| break; |
| } |
| } |
| |
| toneGen.release(); |
| return result; |
| } |
| |
| // Test all proprietary tones one by one |
| public static boolean tonesProprietaryTest() throws Exception { |
| Log.v(TAG, "Proprietary tones test"); |
| ToneGenerator toneGen; |
| int type; |
| boolean result = true; |
| |
| toneGen = new ToneGenerator(AudioManager.STREAM_MUSIC, 100); |
| |
| for (type = ToneGenerator.TONE_PROP_BEEP; type <= ToneGenerator.TONE_PROP_BEEP2; type++) { |
| if (toneGen.startTone(type)) { |
| Thread.sleep(1000); |
| toneGen.stopTone(); |
| Thread.sleep(100); |
| } else { |
| result = false; |
| break; |
| } |
| } |
| |
| toneGen.release(); |
| return result; |
| } |
| |
| // Test playback of 2 tones simultaneously |
| public static boolean tonesSimultaneousTest() throws Exception { |
| Log.v(TAG, "Simultaneous tones test"); |
| ToneGenerator toneGen1; |
| ToneGenerator toneGen2; |
| int type; |
| boolean result = true; |
| |
| toneGen1 = new ToneGenerator(AudioManager.STREAM_MUSIC, 100); |
| toneGen2 = new ToneGenerator(AudioManager.STREAM_MUSIC, 50); |
| |
| if (toneGen1.startTone(ToneGenerator.TONE_DTMF_1)) { |
| Thread.sleep(100); |
| if (toneGen2.startTone(ToneGenerator.TONE_DTMF_2)) { |
| Thread.sleep(500); |
| toneGen1.stopTone(); |
| Thread.sleep(100); |
| toneGen2.stopTone(); |
| } else { |
| toneGen1.stopTone(); |
| result = false; |
| } |
| } else { |
| result = false; |
| } |
| |
| toneGen1.release(); |
| toneGen2.release(); |
| return result; |
| } |
| |
| // Test start of new tone without stopping previous one |
| public static boolean tonesStressTest() throws Exception { |
| Log.v(TAG, "Stress tones test"); |
| ToneGenerator toneGen; |
| int type; |
| boolean result = true; |
| |
| toneGen = new ToneGenerator(AudioManager.STREAM_MUSIC, 100); |
| |
| for (type = ToneGenerator.TONE_DTMF_1; type <= ToneGenerator.TONE_DTMF_9; type++) { |
| if (toneGen.startTone(type)) { |
| Thread.sleep(200); |
| } else { |
| result = false; |
| break; |
| } |
| } |
| |
| toneGen.release(); |
| return result; |
| } |
| |
| // Perform all tones tests |
| public static boolean tonesAllTest() throws Exception { |
| Log.v(TAG, "All tones tests"); |
| |
| if (!tonesDtmfTest()) { |
| return false; |
| } |
| if (!tonesSupervisoryTest()) { |
| return false; |
| } |
| if (!tonesProprietaryTest()) { |
| return false; |
| } |
| if (!tonesSimultaneousTest()) { |
| return false; |
| } |
| if (!tonesStressTest()) { |
| return false; |
| } |
| return true; |
| } |
| } |