• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2006 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.internal.telephony.cat;
18 
19 import android.os.Parcel;
20 import android.os.Parcelable;
21 
22 /**
23  * Enumeration for representing the tone values for use with PLAY TONE
24  * proactive commands.
25  *
26  * {@hide}
27  */
28 public enum Tone implements Parcelable {
29     // Standard supervisory tones
30 
31     /**
32      * Dial tone.
33      */
34     DIAL(0x01),
35 
36     /**
37      * Called subscriber busy.
38      */
39     BUSY(0x02),
40 
41     /**
42      * Congestion.
43      */
44     CONGESTION(0x03),
45 
46     /**
47      * Radio path acknowledge.
48      */
49     RADIO_PATH_ACK(0x04),
50 
51     /**
52      * Radio path not available / Call dropped.
53      */
54     RADIO_PATH_NOT_AVAILABLE(0x05),
55 
56     /**
57      * Error/Special information.
58      */
59     ERROR_SPECIAL_INFO(0x06),
60 
61     /**
62      * Call waiting tone.
63      */
64     CALL_WAITING(0x07),
65 
66     /**
67      * Ringing tone.
68      */
69     RINGING(0x08),
70 
71     // Terminal proprietary tones
72 
73     /**
74      * General beep.
75      */
76     GENERAL_BEEP(0x10),
77 
78     /**
79      * Positive acknowledgement tone.
80      */
81     POSITIVE_ACK(0x11),
82 
83     /**
84      * Negative acknowledgement tone.
85      */
86     NEGATIVE_ACK(0x12),
87 
88     /**
89      * Ringing tone as selected by the user for incoming speech call.
90      */
91     INCOMING_SPEECH_CALL(0x13),
92 
93     /**
94      * Alert tone as selected by the user for incoming SMS.
95      */
96     INCOMING_SMS(0x14),
97 
98     /**
99      * Critical alert.
100      * This tone is to be used in critical situations. The terminal shall make
101      * every effort to alert the user when this tone is indicated independent
102      * from the volume setting in the terminal.
103      */
104     CRITICAL_ALERT(0x15),
105 
106     /**
107      * Vibrate only, if available.
108      */
109     VIBRATE_ONLY(0x20),
110 
111     // Themed tones
112 
113     /**
114      * Happy tone.
115      */
116     HAPPY(0x30),
117 
118     /**
119      * Sad tone.
120      */
121     SAD(0x31),
122 
123     /**
124      * Urgent action tone.
125      */
126     URGENT(0x32),
127 
128     /**
129      * Question tone.
130      */
131     QUESTION(0x33),
132 
133     /**
134      * Message received tone.
135      */
136     MESSAGE_RECEIVED(0x34),
137 
138     // Melody tones
139     MELODY_1(0x40),
140     MELODY_2(0x41),
141     MELODY_3(0x42),
142     MELODY_4(0x43),
143     MELODY_5(0x44),
144     MELODY_6(0x45),
145     MELODY_7(0x46),
146     MELODY_8(0x47);
147 
148     private int mValue;
149 
Tone(int value)150     Tone(int value) {
151         mValue = value;
152     }
153 
154     /**
155      * Create a Tone object.
156      * @param value Integer value to be converted to a Tone object.
157      * @return Tone object whose value is {@code value}. If no Tone object has
158      *         that value, null is returned.
159      */
fromInt(int value)160     public static Tone fromInt(int value) {
161         for (Tone e : Tone.values()) {
162             if (e.mValue == value) {
163                 return e;
164             }
165         }
166         return null;
167     }
168 
Tone(Parcel in)169     Tone(Parcel in) {
170         mValue = in.readInt();
171     }
172 
173     @Override
writeToParcel(Parcel dest, int flags)174     public void writeToParcel(Parcel dest, int flags) {
175         dest.writeInt(ordinal());
176     }
177 
178     @Override
describeContents()179     public int describeContents() {
180         return 0;
181     }
182 
183     public static final Parcelable.Creator<Tone> CREATOR = new Parcelable.Creator<Tone>() {
184         @Override
185         public Tone createFromParcel(Parcel in) {
186             return Tone.values()[in.readInt()];
187         }
188 
189         @Override
190         public Tone[] newArray(int size) {
191             return new Tone[size];
192         }
193     };
194 }
195