/*******************************************************************************
* Copyright (c) 2013 Jens Kristian Villadsen.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Public License v3.0
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/gpl.html
*
* Contributors:
* Jens Kristian Villadsen - Lead developer, owner and creator
******************************************************************************/
package org.dyndns.jkiddo.dmcp.chunks.media;
import org.dyndns.jkiddo.dmap.chunks.audio.SongAlbumId;
import org.dyndns.jkiddo.dmcp.chunks.media.audio.FullscreenStatus;
import org.dyndns.jkiddo.dmcp.chunks.media.audio.NowPlaying;
import org.dyndns.jkiddo.dmcp.chunks.media.audio.NowPlayingAlbum;
import org.dyndns.jkiddo.dmcp.chunks.media.audio.NowPlayingArtist;
import org.dyndns.jkiddo.dmcp.chunks.media.audio.NowPlayingGenre;
import org.dyndns.jkiddo.dmcp.chunks.media.audio.NowPlayingName;
import org.dyndns.jkiddo.dmcp.chunks.media.audio.PlayStatus;
import org.dyndns.jkiddo.dmcp.chunks.media.audio.ProgressRemain;
import org.dyndns.jkiddo.dmcp.chunks.media.audio.ProgressTotal;
import org.dyndns.jkiddo.dmcp.chunks.media.audio.RepeatStatus;
import org.dyndns.jkiddo.dmcp.chunks.media.audio.ShuffleStatus;
import org.dyndns.jkiddo.dmcp.chunks.media.audio.VisualizerStatus;
import org.dyndns.jkiddo.dmcp.chunks.media.extension.GeniusSelectable;
import org.dyndns.jkiddo.dmp.chunks.Chunk;
import org.dyndns.jkiddo.dmp.chunks.ContainerChunk;
import org.dyndns.jkiddo.dmp.IDmapProtocolDefinition.DmapChunkDefinition;
import org.dyndns.jkiddo.dmp.DMAPAnnotation;
@DMAPAnnotation(type=DmapChunkDefinition.cmst)
public class PlayingStatus extends ContainerChunk
{
public PlayingStatus()
{
super("cmst", "dmcp.playstatus");
}
public <T extends Chunk> T getSpecificChunk(Class<T> clazz)
{
return getSingleChunk(clazz);
}
public PlayStatus getPlayStatus()
{
return getSingleChunk(PlayStatus.class);
}
public ShuffleStatus getShuffleStatus()
{
return getSingleChunk(ShuffleStatus.class);
}
public RepeatStatus getRepeatStatus()
{
return getSingleChunk(RepeatStatus.class);
}
public VisualizerStatus getVisualizerStatus()
{
return getSingleChunk(VisualizerStatus.class);
}
public FullscreenStatus getFullscreenStatus()
{
return getSingleChunk(FullscreenStatus.class);
}
public GeniusSelectable getGeniusSelectable()
{
return getSingleChunk(GeniusSelectable.class);
}
public StatusRevision getStatusRevision()
{
return getSingleChunk(StatusRevision.class);
}
/**
* Is only populated if something is being played.
*
* @return
*/
public NowPlaying getNowPlaying()
{
return getSingleChunk(NowPlaying.class);
}
/**
* Is only populated if something is being played.
*
* @return
*/
public NowPlayingName getTrackName()
{
return getSingleChunk(NowPlayingName.class);
}
/**
* Is only populated if something is being played.
*
* @return
*/
public NowPlayingArtist getTrackArtist()
{
return getSingleChunk(NowPlayingArtist.class);
}
/**
* Is only populated if something is being played.
*
* @return
*/
public NowPlayingAlbum getTrackAlbum()
{
return getSingleChunk(NowPlayingAlbum.class);
}
/**
* Is only populated if something is being played.
*
* @return
*/
public NowPlayingGenre getTrackGenre()
{
return getSingleChunk(NowPlayingGenre.class);
}
/**
* Is only populated if something is being played.
*
* @return
*/
public SongAlbumId getSongAlbumId()
{
return getSingleChunk(SongAlbumId.class);
}
/**
* Is only populated if something is being played.
*
* @return
*/
public ProgressRemain getProgressRemain()
{
return getSingleChunk(ProgressRemain.class);
}
/**
* Is only populated if something is being played.
*
* @return
*/
public ProgressTotal getProgressTotal()
{
return getSingleChunk(ProgressTotal.class);
}
// com.apple.itunes.unknown-st(cmst; container)
// dmap.status(mstt; uint)=200
// com.apple.itunes.unknown-sr(cmsr; uint)=76
// com.apple.itunes.unknown-ps(caps; ubyte)=4
// com.apple.itunes.unknown-sh(cash; ubyte)=1
// com.apple.itunes.unknown-rp(carp; ubyte)=0
// com.apple.itunes.unknown-fs(cafs; ubyte)=0
// com.apple.itunes.unknown-vs(cavs; ubyte)=0
// com.apple.itunes.unknown-vc(cavc; ubyte)=1
// com.apple.itunes.unknown-as(caas; uint)=2
// com.apple.itunes.unknown-ar(caar; uint)=6
// com.apple.itunes.unknown-fe(cafe; ubyte)=0
// com.apple.itunes.unknown-ve(cave; ubyte)=1
// com.apple.itunes.unknown-np('canp')
// com.apple.itunes.unknown-nn(cann; string)=N'oubliez Jamais
// com.apple.itunes.unknown-na(cana; string)=Joe Cocker
// com.apple.itunes.unknown-nl(canl; string)=Greatest Hits
// com.apple.itunes.unknown-ng(cang; string)=Rock
// daap.songalbumid(asai; ulong)=4713229614869101231
// com.apple.itunes.unknown-mk(cmmk; uint)=1
// com.apple.itunes.can-be-genius-seed(aeGs; ubyte)=1
// com.apple.itunes.genius-selectable(ceGS; ubyte)=1
// com.apple.itunes.unknown-sa(casa; uint)=0
// com.apple.itunes.unknown-nt(cant; uint)=94255
// com.apple.itunes.unknown-st(cast; uint)=280293
// com.apple.itunes.unknown-su(casu; ubyte)=1
// com.apple.itunes.unknown-Qu(ceQu; ubyte)=0
}