/*
* Copyright (C) 2006 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.internal.telephony.cat;
import android.os.Parcel;
import android.os.Parcelable;
/**
* Enumeration for representing the tone values for use with PLAY TONE
* proactive commands.
*
* {@hide}
*/
public enum Tone implements Parcelable {
// Standard supervisory tones
/**
* Dial tone.
*/
DIAL(0x01),
/**
* Called subscriber busy.
*/
BUSY(0x02),
/**
* Congestion.
*/
CONGESTION(0x03),
/**
* Radio path acknowledge.
*/
RADIO_PATH_ACK(0x04),
/**
* Radio path not available / Call dropped.
*/
RADIO_PATH_NOT_AVAILABLE(0x05),
/**
* Error/Special information.
*/
ERROR_SPECIAL_INFO(0x06),
/**
* Call waiting tone.
*/
CALL_WAITING(0x07),
/**
* Ringing tone.
*/
RINGING(0x08),
// Terminal proprietary tones
/**
* General beep.
*/
GENERAL_BEEP(0x10),
/**
* Positive acknowledgement tone.
*/
POSITIVE_ACK(0x11),
/**
* Negative acknowledgement tone.
*/
NEGATIVE_ACK(0x12),
/**
* Ringing tone as selected by the user for incoming speech call.
*/
INCOMING_SPEECH_CALL(0x13),
/**
* Alert tone as selected by the user for incoming SMS.
*/
INCOMING_SMS(0x14),
/**
* Critical alert.
* This tone is to be used in critical situations. The terminal shall make
* every effort to alert the user when this tone is indicated independent
* from the volume setting in the terminal.
*/
CRITICAL_ALERT(0x15),
/**
* Vibrate only, if available.
*/
VIBRATE_ONLY(0x20),
// Themed tones
/**
* Happy tone.
*/
HAPPY(0x30),
/**
* Sad tone.
*/
SAD(0x31),
/**
* Urgent action tone.
*/
URGENT(0x32),
/**
* Question tone.
*/
QUESTION(0x33),
/**
* Message received tone.
*/
MESSAGE_RECEIVED(0x34),
// Melody tones
MELODY_1(0x40),
MELODY_2(0x41),
MELODY_3(0x42),
MELODY_4(0x43),
MELODY_5(0x44),
MELODY_6(0x45),
MELODY_7(0x46),
MELODY_8(0x47);
private int mValue;
Tone(int value) {
mValue = value;
}
/**
* Create a Tone object.
* @param value Integer value to be converted to a Tone object.
* @return Tone object whose value is {@code value}. If no Tone object has
* that value, null is returned.
*/
public static Tone fromInt(int value) {
for (Tone e : Tone.values()) {
if (e.mValue == value) {
return e;
}
}
return null;
}
Tone(Parcel in) {
mValue = in.readInt();
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(ordinal());
}
@Override
public int describeContents() {
return 0;
}
public static final Parcelable.Creator<Tone> CREATOR = new Parcelable.Creator<Tone>() {
@Override
public Tone createFromParcel(Parcel in) {
return Tone.values()[in.readInt()];
}
@Override
public Tone[] newArray(int size) {
return new Tone[size];
}
};
}