Package net.pms.external.xbmc.folders.music

Source Code of net.pms.external.xbmc.folders.music.AlbumFolder

package net.pms.external.xbmc.folders.music;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import net.pms.dlna.RealFile;
import net.pms.dlna.virtual.VirtualFolder;
import net.pms.external.XBMCLog;
import net.pms.external.xbmc.MusicDAO;
import net.pms.external.xbmc.folders.ListFiles;
import net.pms.external.xbmc.info.SongInfo;

public class AlbumFolder extends VirtualFolder {

  private MusicDAO dao;
  private int artistId = -1;

  public AlbumFolder(String name, MusicDAO dao) {
    this(name, -1, dao);
  }

  public AlbumFolder(String name, int artistId, MusicDAO dao) {
    super(name, null);
    this.artistId = artistId;
    this.dao = dao;
  }

  @Override
  public void discoverChildren() {
    XBMCLog.info("discovering albums");
    Map<Integer, String> albums = null;
    if (artistId != -1) {
      albums = dao.getAlbumsByArtist(artistId);
    } else {
      albums = dao.getAlbums();
    }

    for (final Integer albumId : albums.keySet()) {
      addChild(new ListFiles(albums.get(albumId)) {
        @Override
        public List<RealFile> getList() {
          List<SongInfo> songs = dao.getTracksByAlbum(albumId);
          List<RealFile> songFiles = new ArrayList<RealFile>();
          for (SongInfo songInfo : songs) {
            songFiles.add(new RealFile(songInfo.getFile()));
          }
          return songFiles;
        }
      });
    }
  }

}
TOP

Related Classes of net.pms.external.xbmc.folders.music.AlbumFolder

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.