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

org.intellimate.izou.system.sound.IzouSoundLine Maven / Gradle / Ivy

package org.intellimate.izou.system.sound;

import org.intellimate.izou.addon.AddOnModel;
import org.intellimate.izou.identification.Identification;

/**
 * use this interface to communicate with Izou. Every Instance of Line you obtain via Mixer.getLine() implements this
 * interface.
 * @author LeanderK
 * @version 1.0
 */
//TODO: TargetDataLine is not implemented yet
public interface IzouSoundLine {
    /**
     * returns whether the line is permanently-available.
     * If a line is not permanently available, it will close after max. 10 minutes
     * @return true if permanent.
     */
    boolean isPermanent();

    /**
     * gets the associated AddonModel
     * @return the AddonModel
     */
    @SuppressWarnings("unused")
    AddOnModel getAddOnModel();

    /**
     * gets the ID responsible
     * @return the the ID
     */
    @SuppressWarnings("unused")
    Identification getResponsibleID();

    /**
     * returns whether the Line is muted
     * @return true if muted.
     */
    @SuppressWarnings("unused")
    boolean isMutedFromSystem();

    /**
     * sets whether other Addons audio-inputs should be muted while this line is open (only works for non-permanent lines).
     * The standard is true.
     * @param muteIfNonPermanent true if muted, false if not
     */
    @SuppressWarnings("unused")
    void setMuteIfNonPermanent(boolean muteIfNonPermanent);

    /**
     * retruns whether other Addons audio-inputs should be muted while this line is open (only works for non-permanent lines).
     * @return true if muted, false if not
     */
    @SuppressWarnings("unused")
    boolean isMuteIfNonPermanent();
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy