/**@class android.hardware.radio.ProgramSelector
 implements android.os.Parcelable

@extends java.lang.Object

 A set of identifiers necessary to tune to a given station.

 This can hold various identifiers, like
 - AM/FM frequency
 - HD Radio subchannel
 - DAB channel info

 The primary ID uniquely identifies a station and can be used for equality
 check. The secondary IDs are supplementary and can speed up tuning process,
 but the primary ID is sufficient (ie. after a full band scan).

 Two selectors with different secondary IDs, but the same primary ID are
 considered equal. In particular, secondary IDs vector may get updated for
 an entry on the program list (ie. when a better frequency for a given
 station is found).

 The primaryId of a given programType MUST be of a specific type:
 - AM, FM: RDS_PI if the station broadcasts RDS, AMFM_FREQUENCY otherwise;
 - AM_HD, FM_HD: HD_STATION_ID_EXT;
 - DAB: DAB_SIDECC;
 - DRMO: DRMO_SERVICE_ID;
 - SXM: SXM_SERVICE_ID;
 - VENDOR: VENDOR_PRIMARY.
 @hide
*/
var ProgramSelector = {

/**Invalid program type.
 @deprecated use {@link ProgramIdentifier} instead
*/
PROGRAM_TYPE_INVALID : "0",
/**Analogue AM radio (with or without RDS).
 @deprecated use {@link ProgramIdentifier} instead
*/
PROGRAM_TYPE_AM : "1",
/**analogue FM radio (with or without RDS).
 @deprecated use {@link ProgramIdentifier} instead
*/
PROGRAM_TYPE_FM : "2",
/**AM HD Radio.
 @deprecated use {@link ProgramIdentifier} instead
*/
PROGRAM_TYPE_AM_HD : "3",
/**FM HD Radio.
 @deprecated use {@link ProgramIdentifier} instead
*/
PROGRAM_TYPE_FM_HD : "4",
/**Digital audio broadcasting.
 @deprecated use {@link ProgramIdentifier} instead
*/
PROGRAM_TYPE_DAB : "5",
/**Digital Radio Mondiale.
 @deprecated use {@link ProgramIdentifier} instead
*/
PROGRAM_TYPE_DRMO : "6",
/**SiriusXM Satellite Radio.
 @deprecated use {@link ProgramIdentifier} instead
*/
PROGRAM_TYPE_SXM : "7",
/**Vendor-specific, not synced across devices.
 @deprecated use {@link ProgramIdentifier} instead
*/
PROGRAM_TYPE_VENDOR_START : "1000",
/**@deprecated use {@link ProgramIdentifier} instead */
PROGRAM_TYPE_VENDOR_END : "1999",
/***/
IDENTIFIER_TYPE_INVALID : "0",
/**kHz */
IDENTIFIER_TYPE_AMFM_FREQUENCY : "1",
/**16bit */
IDENTIFIER_TYPE_RDS_PI : "2",
/** 64bit compound primary identifier for HD Radio.

 Consists of (from the LSB):
 - 32bit: Station ID number;
 - 4bit: HD_SUBCHANNEL;
 - 18bit: AMFM_FREQUENCY.
 The remaining bits should be set to zeros when writing on the chip side
 and ignored when read.
*/
IDENTIFIER_TYPE_HD_STATION_ID_EXT : "3",
/** HD Radio subchannel - a value of range 0-7.

 The subchannel index is 0-based (where 0 is MPS and 1..7 are SPS),
 as opposed to HD Radio standard (where it's 1-based).

 @deprecated use IDENTIFIER_TYPE_HD_STATION_ID_EXT instead
*/
IDENTIFIER_TYPE_HD_SUBCHANNEL : "4",
/** 64bit additional identifier for HD Radio.

 Due to Station ID abuse, some HD_STATION_ID_EXT identifiers may be not
 globally unique. To provide a best-effort solution, a short version of
 station name may be carried as additional identifier and may be used
 by the tuner hardware to double-check tuning.

 The name is limited to the first 8 A-Z0-9 characters (lowercase letters
 must be converted to uppercase). Encoded in little-endian ASCII:
 the first character of the name is the LSB.

 For example: "Abc" is encoded as 0x434241.
*/
IDENTIFIER_TYPE_HD_STATION_NAME : "10004",
/** @see {@link IDENTIFIER_TYPE_DAB_SID_EXT}
*/
IDENTIFIER_TYPE_DAB_SIDECC : "5",
/** 28bit compound primary identifier for Digital Audio Broadcasting.

 Consists of (from the LSB):
 - 16bit: SId;
 - 8bit: ECC code;
 - 4bit: SCIdS.

 SCIdS (Service Component Identifier within the Service) value
 of 0 represents the main service, while 1 and above represents
 secondary services.

 The remaining bits should be set to zeros when writing on the chip side
 and ignored when read.
*/
IDENTIFIER_TYPE_DAB_SID_EXT : "5",
/**16bit */
IDENTIFIER_TYPE_DAB_ENSEMBLE : "6",
/**12bit */
IDENTIFIER_TYPE_DAB_SCID : "7",
/**kHz */
IDENTIFIER_TYPE_DAB_FREQUENCY : "8",
/**24bit */
IDENTIFIER_TYPE_DRMO_SERVICE_ID : "9",
/**kHz */
IDENTIFIER_TYPE_DRMO_FREQUENCY : "10",
/** 1: AM, 2:FM
 @deprecated use {@link IDENTIFIER_TYPE_DRMO_FREQUENCY} instead
*/
IDENTIFIER_TYPE_DRMO_MODULATION : "11",
/**32bit */
IDENTIFIER_TYPE_SXM_SERVICE_ID : "12",
/**0-999 range */
IDENTIFIER_TYPE_SXM_CHANNEL : "13",
/** Primary identifier for vendor-specific radio technology.
 The value format is determined by a vendor.

 It must not be used in any other programType than corresponding VENDOR
 type between VENDOR_START and VENDOR_END (eg. identifier type 1015 must
 not be used in any program type other than 1015).
*/
IDENTIFIER_TYPE_VENDOR_START : "1000",
/** @see {@link IDENTIFIER_TYPE_VENDOR_START}
*/
IDENTIFIER_TYPE_VENDOR_END : "1999",
/** @deprecated use {@link IDENTIFIER_TYPE_VENDOR_START} instead
*/
IDENTIFIER_TYPE_VENDOR_PRIMARY_START : "1000",
/** @deprecated use {@link IDENTIFIER_TYPE_VENDOR_END} instead
*/
IDENTIFIER_TYPE_VENDOR_PRIMARY_END : "1999",
/***/
CREATOR : "null",
/**Type of a radio technology.
@return {Number} program type.
@deprecated use {@link getPrimaryId} instead
*/
getProgramType : function(  ) {},

/**Primary program identifier uniquely identifies a station and is used to
 determine equality between two ProgramSelectors.
@return {Object {android.hardware.radio.ProgramSelector.Identifier}} primary identifier.
*/
getPrimaryId : function(  ) {},

/**Secondary program identifier is not required for tuning, but may make it
 faster or more reliable.
@return {Object {android.hardware.radio.ProgramSelector.Identifier}} secondary identifier list, must not be modified.
*/
getSecondaryIds : function(  ) {},

/**Looks up an identifier of a given type (either primary or secondary).

 If there are multiple identifiers if a given type, then first in order (where primary id is
 before any secondary) is selected.
@param {Number} type type of identifier.
@return {Number} identifier value, if found.
@throws IllegalArgumentException, if not found.
*/
getFirstId : function(  ) {},

/**Looks up all identifier of a given type (either primary or secondary).

 Some identifiers may be provided multiple times, for example
 IDENTIFIER_TYPE_AMFM_FREQUENCY for FM Alternate Frequencies.
@param {Number} type type of identifier.
@return {Object {android.hardware.radio.ProgramSelector.Identifier}} a list of identifiers, generated on each call. May be modified.
*/
getAllIds : function(  ) {},

/**Vendor identifiers are passed as-is to the HAL implementation,
 preserving elements order.
@return {Number} an array of vendor identifiers, must not be modified.
@deprecated for HAL 1.x compatibility;
             HAL 2.x uses standard primary/secondary lists for vendor IDs
*/
getVendorIds : function(  ) {},

/**Creates an equivalent ProgramSelector with a given secondary identifier preferred.

 Used to point to a specific physical identifier for technologies that may broadcast the same
 program on different channels. For example, with a DAB program broadcasted over multiple
 ensembles, the radio hardware may select the one with the strongest signal. The UI may select
 preferred ensemble though, so the radio hardware may try to use it in the first place.

 This is a best-effort hint for the tuner, not a guaranteed behavior.

 Setting the given secondary identifier as preferred means filtering out other secondary
 identifiers of its type and adding it to the list.
@param {Object {ProgramSelector.Identifier}} preferred preferred secondary identifier
@return {Object {android.hardware.radio.ProgramSelector}} a new ProgramSelector with a given secondary identifier preferred
*/
withSecondaryPreferred : function(  ) {},

/**Builds new ProgramSelector for AM/FM frequency.
@param {Number} band the band.
@param {Number} frequencyKhz the frequency in kHz.
@return {Object {android.hardware.radio.ProgramSelector}} new ProgramSelector object representing given frequency.
@throws IllegalArgumentException if provided frequency is out of bounds.
*/
createAmFmSelector : function(  ) {},

/**Builds new ProgramSelector for AM/FM frequency.

 This method variant supports HD Radio subchannels, but it's undesirable to
 select them manually. Instead, the value should be retrieved from program list.
@param {Number} band the band.
@param {Number} frequencyKhz the frequency in kHz.
@param {Number} subChannel 1-based HD Radio subchannel.
@return {Object {android.hardware.radio.ProgramSelector}} new ProgramSelector object representing given frequency.
@throws IllegalArgumentException if provided frequency is out of bounds,
         or tried setting a subchannel for analog AM/FM.
*/
createAmFmSelector : function(  ) {},

/**
*/
toString : function(  ) {},

/**
*/
hashCode : function(  ) {},

/**
*/
equals : function(  ) {},

/**
*/
writeToParcel : function(  ) {},

/**
*/
describeContents : function(  ) {},


};