private Set<String> getNames() { if (names == null) { scan(); } return names; }
public File getFile(File artworkDirectory, byte[] libraryPersistentId) { return new File(artworkDirectory, toString(libraryPersistentId)); }
AlbumArtworkDirectory artDir = new AlbumArtworkDirectory(artworkDirectoryFor(libFile)); File f = artDir.getDownload(l, art); bw.newLine(); File f = artDir.getCache(l, art); for (String filename : awp.writeAsGfxFiles(outdir, f)) { for (File f : artDir.getUnused()) { bw.write("<h3>" + f.getName() + "</h3>\n");
AlbumArtworkDirectory artDir = new AlbumArtworkDirectory(ArtworkWebPage.artworkDirectoryFor(libFile)); ArtworkWebPage awp = new ArtworkWebPage(); File f = artDir.getDownload(lib, t); for (String artFile : awp.writeAsGfxFiles(artworkOutput, f)) { String artFileUri = new File(artworkOutput, artFile).toURI().toASCIIString();
jf.setVisible(true); AlbumArtworkDirectory aad = new AlbumArtworkDirectory(new File(iTunesDirectory, "Album Artwork")); continue; Collection<byte[]> streams = ExtractArt.extract(f);
public File get(Library l, ArtworkFile.Directory type, byte[] artId) { if (artId == null) { return null; } ArtworkFile af = new ArtworkFile(type, artId, 2); String f = af.toString(l.getLibraryPersistentId()); // ArtworkFile af1 = new ArtworkFile(type, artId, 1); // // String f1 = af1.toString(l.getLibraryPersistentId()); // // if (getNames().contains(f1)) { // f = f1; // } else { // f = null; // return null; // } used.add(f); return new File(dir, f); } }
private void recurse(File f, Collection<File> files) { if (f.isFile()) { files.add(f); } else if (f.isDirectory()) { File[] fa = f.listFiles(); if (fa != null) { for (File sf : fa) { recurse(sf, files); } } } }
public static void main(String[] args) throws FileNotFoundException, IOException { File f = new File("/tmp/sample.itc2"); Collection<byte[]> streams = extract(f); // int i = 0; for (byte[] ba : streams) { BufferedImage img = ImageIO.read(new ByteArrayInputStream(ba)); JFrame jf = new JFrame(); jf.getContentPane().add(new JButton(new ImageIcon(img))); jf.pack(); jf.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); jf.setVisible(true); // OutputStream out = new FileOutputStream("sample" + i + ".png"); // out.write(ba); // out.close(); // i++; } }
public String toString(byte[] libraryPersistentId) { StringBuilder sb = new StringBuilder(); sb.append(dir.name()); sb.append('/'); String libDir = Util.pidToString(libraryPersistentId); sb.append(libDir); sb.append('/'); sb.append(String.format("%02d", id[7] & 0x0F)); sb.append('/'); sb.append(String.format("%02d", (id[7] >> 4) & 0x0F)); sb.append('/'); sb.append(String.format("%02d", id[6] & 0x0F)); sb.append('/' + libDir + "-" + Util.pidToString(id)); sb.append(".itc"); if (version != 1) { sb.append(version); } return sb.toString(); } }
private void scan() { Set<String> names = new HashSet<String>(); Collection<File> files = new ArrayList<File>(); recurse(dir, files); URI base = dir.toURI(); for (File f : files) { String relPath = base.relativize(f.toURI()).toString(); names.add(relPath); } this.names = names; }
Collection<byte[]> artStreams = ExtractArt.extract(f);
public File getCache(Library l, Artwork art) { byte[] artId = art.getPersistentId(); return get(l, ArtworkFile.Directory.Cache, artId); }