/* * Jitsi, the OpenSource Java VoIP and Instant Messaging client. * * Copyright @ 2015 Atlassian Pty Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package net.java.sip.communicator.service.gui.call; import net.java.sip.communicator.service.protocol.*; import net.java.sip.communicator.service.protocol.event.*; /** * The <tt>CallPeerRenderer</tt> interface is meant to be implemented by * different renderers of <tt>CallPeer</tt>s. Through this interface they would * could be updated in order to reflect the current state of the CallPeer. * * @author Yana Stamcheva * @author Lyubomir Marinov */ public interface CallPeerRenderer { /** * Releases the resources (which require explicit disposal) acquired by this * <tt>CallPeerRenderer</tt> throughout its lifetime and prepares it for * garbage collection. */ public void dispose(); /** * Returns the parent call renderer. * * @return the parent call renderer */ public CallRenderer getCallRenderer(); /** * Indicates if the local video component is currently visible. * * @return <tt>true</tt> if the local video component is currently visible, * <tt>false</tt> - otherwise */ public boolean isLocalVideoVisible(); /** * Prints the given DTMG character through this <tt>CallPeerRenderer</tt>. * * @param dtmfChar the DTMF char to print */ public void printDTMFTone(char dtmfChar); /** * The handler for the security event received. The security event * for starting establish a secure connection. * * @param securityStartedEvent * the security started event received */ public void securityNegotiationStarted( CallPeerSecurityNegotiationStartedEvent securityStartedEvent); /** * Indicates that the security is turned off. * @param evt Details about the event that caused this message. */ public void securityOff(CallPeerSecurityOffEvent evt); /** * Indicates that the security is turned on. * * @param evt Details about the event that caused this message. */ public void securityOn(CallPeerSecurityOnEvent evt); /** * Indicates that the security status is pending confirmation. */ public void securityPending(); /** * Indicates that the security is timeouted, is not supported by the * other end. * @param evt Details about the event that caused this message. */ public void securityTimeout(CallPeerSecurityTimeoutEvent evt); /** * Sets the reason of a call failure if one occurs. The renderer should * display this reason to the user. * * @param reason the reason of the error to set */ public void setErrorReason(String reason); /** * Shows/hides the local video component. * * @param visible <tt>true</tt> to show the local video or <tt>false</tt> to * hide it */ public void setLocalVideoVisible(boolean visible); /** * Sets the mute property value. * * @param mute <tt>true</tt> to mute the <tt>CallPeer</tt> depicted by this * instance; <tt>false</tt>, otherwise */ public void setMute(boolean mute); /** * Sets the "on hold" property value. * * @param onHold <tt>true</tt> to put the <tt>CallPeer</tt> depicted by this * instance on hold; <tt>false</tt>, otherwise */ public void setOnHold(boolean onHold); /** * Sets the <tt>image</tt> of the peer. * * @param image the image to set */ public void setPeerImage(byte[] image); /** * Sets the name of the peer. * * @param name the name of the peer */ public void setPeerName(String name); /** * Sets the state of the contained call peer by specifying the * state name. * * @param oldState the previous state of the peer * @param newState the new state of the peer * @param stateString the state of the contained call peer */ public void setPeerState( CallPeerState oldState, CallPeerState newState, String stateString); /** * Shows/hides the security panel. * * @param visible <tt>true</tt> to show the security panel or <tt>false</tt> * to hide it */ public void setSecurityPanelVisible(boolean visible); }