/*
* @(#)MpegAudioControl.java 1.4 02/08/21
*
* Copyright (c) 1996-2002 Sun Microsystems, Inc. All rights reserved.
*/
package javax.media.control;
/**
* This interface is a Control for specifying the parameters for MPEG audio.
* @since JMF 2.0
*/
public interface MpegAudioControl extends javax.media.Control {
/**
* Indicates support for audio layer 1
*/
public final static int LAYER_1 = 1<<0;
/**
* Indicates support for audio layer 2
*/
public final static int LAYER_2 = 1<<1;
/**
* Indicates support for audio layer 3
*/
public final static int LAYER_3 = 1<<2;
/**
* Returns the audio layer support capability.<br>
* The returned value consists of a logical OR among the relevant flags.
* @see #LAYER_1
* @see #LAYER_2
* @see #LAYER_3
*/
public int getSupportedAudioLayers();
/**
* Indicates support for 16 KHz audio sampling rate
*/
public final static int SAMPLING_RATE_16 = 1<<0;
/**
* Indicates support for 22.05 KHz audio sampling rate
*/
public final static int SAMPLING_RATE_22_05 = 1<<1;
/**
* Indicates support for 24 KHz audio sampling rate
*/
public final static int SAMPLING_RATE_24 = 1<<2;
/**
* Indicates support for 32 KHz audio sampling rate
*/
public final static int SAMPLING_RATE_32 = 1<<3;
/**
* Indicates support for 44.1 KHz audio sampling rate
*/
public final static int SAMPLING_RATE_44_1 = 1<<4;
/**
* Indicates support for 48 KHz audio sampling rate
*/
public final static int SAMPLING_RATE_48 = 1<<5;
/**
* Returns the audio sampling rate support capability.<br>
* The returned value consists of a logical OR among the relevant flags.
* @see #SAMPLING_RATE_16
* @see #SAMPLING_RATE_22_05
* @see #SAMPLING_RATE_24
* @see #SAMPLING_RATE_32
* @see #SAMPLING_RATE_44_1
* @see #SAMPLING_RATE_48
*/
public int getSupportedSamplingRates();
/**
* Indicates support for single channel layout
*/
public final static int SINGLE_CHANNEL = 1<<0;
/**
* Indicates support for two channels stereo layout
*/
public final static int TWO_CHANNELS_STEREO = 1<<1;
/**
* Indicates support for two channels dual layout
*/
public final static int TWO_CHANNELS_DUAL = 1<<2;
/**
* Indicates support for three channels 2-1 layout
* (Left, Right and single Surround)
*/
public final static int THREE_CHANNELS_2_1 = 1<<2;
/**
* Indicates support for three channels 3-0 layout
* (Left, Center and Right)
*/
public final static int THREE_CHANNELS_3_0 = 1<<3;
/**
* Indicates support for four channels 2-0 2-0 layout
* (Left and Right of first program, Left and Right of second program)
*/
public final static int FOUR_CHANNELS_2_0_2_0 = 1<<4;
/**
* Indicates support for four channels 2-2 layout
* (Left, Right, Left Surround and Right Surround)
*/
public final static int FOUR_CHANNELS_2_2 = 1<<5;
/**
* Indicates support for four channels 3-1 layout
* (Left, Center, Right and single Surround)
*/
public final static int FOUR_CHANNELS_3_1 = 1<<6;
/**
* Indicates support for five channels 3-0 2-0 layout
* (Left, Center and Right of first program, Left and Right of
* second program)
*/
public final static int FIVE_CHANNELS_3_0_2_0 = 1<<7;
/**
* Indicates support for five channels 3-2 layout
* (Left, Center, Right, Left Surround and Right surround)
*/
public final static int FIVE_CHANNELS_3_2 = 1<<8;
/**
* Returns the audio channel layout support capability.<br>
* The returned value consists of a logical OR among the relevant flags.
* @see #SINGLE_CHANNEL
* @see #TWO_CHANNELS_STEREO
* @see #TWO_CHANNELS_DUAL
* @see #THREE_CHANNELS_2_1
* @see #THREE_CHANNELS_3_0
* @see #FOUR_CHANNELS_2_0_2_0
* @see #FOUR_CHANNELS_2_2
* @see #FIVE_CHANNELS_3_0_2_0
* @see #FIVE_CHANNELS_3_2
*/
public int getSupportedChannelLayouts();
/**
* Returns the low freuqency channel support capability.<br>
*/
public boolean isLowFrequencyChannelSupported();
/**
* Returns the multilingual mode support capability.<br>
*/
public boolean isMultilingualModeSupported();
/**
* Controls the MPEG Audio Layer.<br>
* @return the layer which was actually set.
*/
public int setAudioLayer(int audioLayer);
/**
* Returns the current MPEG Audio Layer.<br>
*/
public int getAudioLayer();
/**
* Controls the MPEG Audio channel layout.<br>
* @return the channel layout which was actually set.
*/
public int setChannelLayout(int channelLayout);
/**
* Returns the current MPEG Audio channel layout.<br>
*/
public int getChannelLayout();
/**
* Controls the Low Frequency Channel mode.
* "true" is on; "false" is off. <br>
* @return true if Low Frequency Channel mode is actually turned on.
*/
public boolean setLowFrequencyChannel(boolean on);
/**
* Returns true if Low Frequency Channel mode is turned on.
*/
public boolean getLowFrequencyChannel();
/**
* Controls the Multilingual mode.
* "true" is on; "false" is off. <br>
* @return true if Multilingual mode is actually turned on.
*/
public boolean setMultilingualMode(boolean on);
/**
* Returns true if Multilingual mode is turned on.
*/
public boolean getMultilingualMode();
}
|