001package org.intellimate.izou.system.sound; 002 003import org.intellimate.izou.addon.AddOnModel; 004import org.intellimate.izou.identification.Identification; 005 006/** 007 * use this interface to communicate with Izou. Every Instance of Line you obtain via Mixer.getLine() implements this 008 * interface. 009 * @author LeanderK 010 * @version 1.0 011 */ 012//TODO: TargetDataLine is not implemented yet 013public interface IzouSoundLine { 014 /** 015 * returns whether the line is permanently-available. 016 * If a line is not permanently available, it will close after max. 10 minutes 017 * @return true if permanent. 018 */ 019 boolean isPermanent(); 020 021 /** 022 * gets the associated AddonModel 023 * @return the AddonModel 024 */ 025 @SuppressWarnings("unused") 026 AddOnModel getAddOnModel(); 027 028 /** 029 * gets the ID responsible 030 * @return the the ID 031 */ 032 @SuppressWarnings("unused") 033 Identification getResponsibleID(); 034 035 /** 036 * returns whether the Line is muted 037 * @return true if muted. 038 */ 039 @SuppressWarnings("unused") 040 boolean isMutedFromSystem(); 041 042 /** 043 * sets whether other Addons audio-inputs should be muted while this line is open (only works for non-permanent lines). 044 * The standard is true. 045 * @param muteIfNonPermanent true if muted, false if not 046 */ 047 @SuppressWarnings("unused") 048 void setMuteIfNonPermanent(boolean muteIfNonPermanent); 049 050 /** 051 * retruns whether other Addons audio-inputs should be muted while this line is open (only works for non-permanent lines). 052 * @return true if muted, false if not 053 */ 054 @SuppressWarnings("unused") 055 boolean isMuteIfNonPermanent(); 056}