/*
* This file is part of Libresonic.
*
* Libresonic is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Libresonic is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Libresonic. If not, see <http://www.gnu.org/licenses/>.
*
* Copyright 2015 (C) Sindre Mehus
*/
package org.libresonic.player.domain;
import java.util.Date;
/**
* Represents the playback of a track, possibly remote (e.g., a cached song on a mobile phone).
*
* @author Sindre Mehus
* @version $Id$
*/
public class PlayStatus {
private final MediaFile mediaFile;
private final Player player;
private final Date time;
private final static long TTL_MILLIS = 6L * 60L * 60L * 1000L; // 6 hours
public PlayStatus(MediaFile mediaFile, Player player, Date time) {
this.mediaFile = mediaFile;
this.player = player;
this.time = time;
}
public MediaFile getMediaFile() {
return mediaFile;
}
public Player getPlayer() {
return player;
}
public Date getTime() {
return time;
}
public boolean isExpired() {
return System.currentTimeMillis() > time.getTime() + TTL_MILLIS;
}
public long getMinutesAgo() {
return (System.currentTimeMillis() - time.getTime()) / 1000L / 60L;
}
}