/* You may freely copy, distribute, modify and use this class as long as the original author attribution remains intact. See message below. Copyright (C) 2003 Christian Pesch. All Rights Reserved. */ package slash.metamusic.freedb; import slash.metamusic.discid.DiscId; import slash.metamusic.util.OperationSystem; import java.io.File; import java.io.IOException; import java.util.HashSet; import java.util.Set; import java.util.logging.Level; /** * FreeDBRegister registers CDs for validate queries to * FreeDB by FreeDBBatch. * * @author Christian Pesch * @version $Id: FreeDBRegister.java 959 2007-03-11 08:21:11Z cpesch $ */ public class FreeDBRegister extends RegisterBase { private File device; public File getDevice() { return device; } public void setDevice(File device) { this.device = device; } public void register() throws IOException { log.info("Reading disc id from " + getDevice().getAbsolutePath()); DiscId discId = new DiscId(getDevice()); log.info("Disc id is " + discId); FreeDBClient client = new FreeDBClient(); if (client.isDiscIdCached(discId)) { log.info("Found cached result for disc id:"); CDDBRecord[] records = client.queryDiscId(discId); for (int i = 0; i < records.length; i++) { CDDBRecord record = records[i]; log.info(i + ". record: " + record); CDDBEntry entry = client.readCDInfo(record); log.info(i + ". entry: " + entry); } } Set<DiscId> discIds = readDiscIds(); if (discIds == null) discIds = new HashSet<DiscId>(1); log.info("Read " + discIds.size() + " registered disc ids"); if (log.isLoggable(Level.FINER)) log.finer("Read: " + discIds); discIds.add(discId); writeDiscIds(discIds); log.info("Wrote " + discIds.size() + " registered disc ids"); if (log.isLoggable(Level.FINER)) log.finer("Wrote: " + discIds); } public static void main(String[] args) throws Exception { String device = args.length == 0 ? OperationSystem.getDefaultDeviceName() : args[0]; FreeDBRegister register = new FreeDBRegister(); register.setDevice(new File(device)); register.register(); System.exit(0); } }