/*
* 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.notification;
/**
* An implementation of the <tt>SoundNotificationHandlerImpl</tt> interface.
*
* @author Yana Stamcheva
*/
public class SoundNotificationAction
extends NotificationAction
{
/**
* Interval of milliseconds to wait before repeating the sound. -1 means no
* repetition.
*/
private int loopInterval;
/**
* the descriptor pointing to the sound to be played.
*/
private String soundFileDescriptor;
/**
* The boolean telling if this sound is to be played on notification device.
*/
private boolean isSoundNotificationEnabled;
/**
* Is sound to be played on playback device.
*/
private boolean isSoundPlaybackEnabled;
/**
* Is sound to be played on pc speaker device.
*/
private boolean isSoundPCSpeakerEnabled;
/**
* Creates an instance of <tt>SoundNotification</tt> by
* specifying the sound file descriptor and the loop interval.
* By default is enabling simulation output to notification and
* playback device.
*
* @param soundDescriptor the sound file descriptor
* @param loopInterval the loop interval
*/
public SoundNotificationAction( String soundDescriptor,
int loopInterval)
{
this(soundDescriptor, loopInterval,
false,
false,
false);
}
/**
* Creates an instance of <tt>SoundNotification</tt> by
* specifying the sound file descriptor and the loop interval.
*
* @param soundDescriptor the sound file descriptor
* @param loopInterval the loop interval
* @param isSoundNotificationEnabled True if this sound is activated. False Otherwise.
* @param isSoundPlaybackEnabled True if this sound is activated. False Otherwise.
* @param isSoundPCSpeakerEnabled True if this sound is activated. False Otherwise.
*/
public SoundNotificationAction( String soundDescriptor,
int loopInterval,
boolean isSoundNotificationEnabled,
boolean isSoundPlaybackEnabled,
boolean isSoundPCSpeakerEnabled)
{
super(NotificationAction.ACTION_SOUND);
this.soundFileDescriptor = soundDescriptor;
this.loopInterval = loopInterval;
this.isSoundNotificationEnabled = isSoundNotificationEnabled;
this.isSoundPlaybackEnabled = isSoundPlaybackEnabled;
this.isSoundPCSpeakerEnabled = isSoundPCSpeakerEnabled;
}
/**
* Returns the loop interval. This is the interval of milliseconds to wait
* before repeating the sound, when playing a sound in loop. By default this
* method returns -1.
*
* @return the loop interval
*/
public int getLoopInterval()
{
return loopInterval;
}
/**
* Changes the loop interval. This is the interval of milliseconds to wait
* before repeating the sound, when playing a sound in loop.
*
* @return the loop interval
*/
public void setLoopInterval(int loopInterval)
{
this.loopInterval = loopInterval;
}
/**
* Returns the descriptor pointing to the sound to be played.
*
* @return the descriptor pointing to the sound to be played.
*/
public String getDescriptor()
{
return soundFileDescriptor;
}
/**
* Returns if this sound is to be played on notification device.
*
* @return True if this sound is played on notification device.
* False Otherwise.
*/
public boolean isSoundNotificationEnabled()
{
return isSoundNotificationEnabled;
}
/**
* Returns if this sound is to be played on playback device.
*
* @return True if this sound is played on playback device.
* False Otherwise.
*/
public boolean isSoundPlaybackEnabled()
{
return isSoundPlaybackEnabled;
}
/**
* Returns if this sound is to be played on pc speaker device.
*
* @return True if this sound is played on pc speaker device.
* False Otherwise.
*/
public boolean isSoundPCSpeakerEnabled()
{
return isSoundPCSpeakerEnabled;
}
/**
* Enables or disables this sound for notification device.
*
* @param isSoundEnabled True if this sound is played on notification
* device. False Otherwise.
*/
public void setSoundNotificationEnabled(boolean isSoundEnabled)
{
this.isSoundNotificationEnabled = isSoundEnabled;
}
/**
* Enables or disables this sound for playback device.
*
* @param isSoundEnabled True if this sound is played on playback
* device. False Otherwise.
*/
public void setSoundPlaybackEnabled(boolean isSoundEnabled)
{
this.isSoundPlaybackEnabled = isSoundEnabled;
}
/**
* Enables or disables this sound for pc speaker device.
*
* @param isSoundEnabled True if this sound is played on speaker
* device. False Otherwise.
*/
public void setSoundPCSpeakerEnabled(boolean isSoundEnabled)
{
this.isSoundPCSpeakerEnabled = isSoundEnabled;
}
}