/* * 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; } }