All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.sourceforge.jaad.aac.ChannelConfiguration Maven / Gradle / Ivy

There is a newer version: 0.2.5
Show newest version
package net.sourceforge.jaad.aac;

/**
 * This class is part of JAAD ( jaadec.sourceforge.net ) that is distributed
 * under the Public Domain license. Code changes provided by the JCodec project
 * are distributed under FreeBSD license.
 * 
 * All possible channel configurations for AAC.
 * 
 * @author in-somnia
 */
public final class ChannelConfiguration {

    public final static ChannelConfiguration CHANNEL_CONFIG_UNSUPPORTED = new ChannelConfiguration(-1, "invalid");
    public final static ChannelConfiguration CHANNEL_CONFIG_NONE = new ChannelConfiguration(0, "No channel");
    public final static ChannelConfiguration CHANNEL_CONFIG_MONO = new ChannelConfiguration(1, "Mono");
    public final static ChannelConfiguration CHANNEL_CONFIG_STEREO = new ChannelConfiguration(2, "Stereo");
    public final static ChannelConfiguration CHANNEL_CONFIG_STEREO_PLUS_CENTER = new ChannelConfiguration(3,
            "Stereo+Center");
    public final static ChannelConfiguration CHANNEL_CONFIG_STEREO_PLUS_CENTER_PLUS_REAR_MONO = new ChannelConfiguration(
            4, "Stereo+Center+Rear");
    public final static ChannelConfiguration CHANNEL_CONFIG_FIVE = new ChannelConfiguration(5, "Five channels");
    public final static ChannelConfiguration CHANNEL_CONFIG_FIVE_PLUS_ONE = new ChannelConfiguration(6,
            "Five channels+LF");
    public final static ChannelConfiguration CHANNEL_CONFIG_SEVEN_PLUS_ONE = new ChannelConfiguration(8,
            "Seven channels+LF");

    public static ChannelConfiguration forInt(int i) {
        ChannelConfiguration c;
        switch (i) {
        case 0:
            c = CHANNEL_CONFIG_NONE;
            break;
        case 1:
            c = CHANNEL_CONFIG_MONO;
            break;
        case 2:
            c = CHANNEL_CONFIG_STEREO;
            break;
        case 3:
            c = CHANNEL_CONFIG_STEREO_PLUS_CENTER;
            break;
        case 4:
            c = CHANNEL_CONFIG_STEREO_PLUS_CENTER_PLUS_REAR_MONO;
            break;
        case 5:
            c = CHANNEL_CONFIG_FIVE;
            break;
        case 6:
            c = CHANNEL_CONFIG_FIVE_PLUS_ONE;
            break;
        case 7:
        case 8:
            c = CHANNEL_CONFIG_SEVEN_PLUS_ONE;
            break;
        default:
            c = CHANNEL_CONFIG_UNSUPPORTED;
            break;
        }
        return c;
    }

    private final int chCount;
    private final String descr;

    private ChannelConfiguration(int chCount, String descr) {
        this.chCount = chCount;
        this.descr = descr;
    }

    /**
     * Returns the number of channels in this configuration.
     */
    public int getChannelCount() {
        return chCount;
    }

    /**
     * Returns a short description of this configuration.
     * 
     * @return the channel configuration's description
     */
    public String getDescription() {
        return descr;
    }

    /**
     * Returns a string representation of this channel configuration. The method
     * is identical to getDescription().
     * 
     * @return the channel configuration's description
     */
    @Override
    public String toString() {
        return descr;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy