1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/* 2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Licensed to the Apache Software Foundation (ASF) under one or more 3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * contributor license agreements. See the NOTICE file distributed with 4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * this work for additional information regarding copyright ownership. 5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0 6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * (the "License"); you may not use this file except in compliance with 7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the License. You may obtain a copy of the License at 8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * See the License for the specific language governing permissions and 15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * limitations under the License. 16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpackage javax.sound.sampled; 19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 20f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport org.apache.harmony.sound.internal.nls.Messages; 21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpublic abstract class FloatControl extends Control { 23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 24f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static class Type extends Control.Type { 25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final Type MASTER_GAIN = new Type("Master Gain"); //$NON-NLS-1$ 26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 27f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final Type AUX_SEND = new Type("AUX Send"); //$NON-NLS-1$ 28f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 29f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final Type AUX_RETURN = new Type("AUX Return"); //$NON-NLS-1$ 30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final Type REVERB_SEND = new Type("Reverb Send"); //$NON-NLS-1$ 32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final Type REVERB_RETURN = new Type("Reverb Return"); //$NON-NLS-1$ 34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final Type VOLUME = new Type("Volume"); //$NON-NLS-1$ 36f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 37f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final Type PAN = new Type("Pan"); //$NON-NLS-1$ 38f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 39f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final Type BALANCE = new Type("Balance"); //$NON-NLS-1$ 40f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 41f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final Type SAMPLE_RATE = new Type("Sample Rate"); //$NON-NLS-1$ 42f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 43f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected Type(String name) { 44f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project super(name); 45f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 46f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 47f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 48f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private float value; 49f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 50f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private float maximum; 51f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 52f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private float minimum; 53f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 54f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private String units; 55f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 56f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private String minLabel; 57f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 58f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private String midLabel; 59f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 60f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private String maxLabel; 61f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 62f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private float precision; 63f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 64f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private int updatePeriod; 65f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 66f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected FloatControl(FloatControl.Type type, float minimum, 67f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project float maximum, float precision, int updatePeriod, 68f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project float initialValue, String units, String minLabel, String midLabel, 69f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project String maxLabel) { 70f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project super(type); 71f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project this.maximum = maximum; 72f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project this.maxLabel = maxLabel; 73f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project this.midLabel = midLabel; 74f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project this.minLabel = minLabel; 75f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project this.minimum = minimum; 76f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project this.precision = precision; 77f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project this.units = units; 78f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project this.updatePeriod = updatePeriod; 79f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project this.value = initialValue; 80f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 81f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 82f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected FloatControl(FloatControl.Type type, float minimum, 83f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project float maximum, float precision, int updatePeriod, 84f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project float initialValue, String units) { 85f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project this(type, minimum, maximum, precision, updatePeriod, initialValue, 86f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project units, "", "", ""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ 87f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 88f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 89f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void setValue(float newValue) { 90f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (newValue > maximum || newValue < minimum) { 91f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // sound.0F=value does not fall within the allowable range 92f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throw new IllegalArgumentException(Messages.getString("sound.0F")); //$NON-NLS-1$ 93f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 94f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project this.value = newValue; 95f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 96f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 97f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public float getValue() { 98f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project return this.value; 99f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 100f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 101f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public float getMaximum() { 102f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project return this.maximum; 103f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 104f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 105f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public float getMinimum() { 106f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project return this.minimum; 107f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 108f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 109f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public String getUnits() { 110f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project return this.units; 111f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 112f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 113f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public String getMinLabel() { 114f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project return this.minLabel; 115f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 116f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 117f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public String getMidLabel() { 118f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project return this.midLabel; 119f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 120f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 121f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public String getMaxLabel() { 122f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project return this.maxLabel; 123f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 124f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 125f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public float getPrecision() { 126f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project return this.precision; 127f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 128f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 129f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public int getUpdatePeriod() { 130f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project return this.updatePeriod; 131f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 132f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 133f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void shift(float from, float to, int microseconds) { 134f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project setValue(to); 135f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 136f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 137f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public String toString() { 138f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project return getType() + " with current value: "+ value + " " + units //$NON-NLS-1$ //$NON-NLS-2$ 139f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project + " (range: " + minimum + " - " + maximum + ")"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ 140f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 141f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 142f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project} 143