/* * IcyListener. * * JavaZOOM : mp3spi@javazoom.net * http://www.javazoom.net * *----------------------------------------------------------------------- * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Library General Public License as published * by the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program 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 Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. *---------------------------------------------------------------------- */ package javazoom.spi.mpeg.sampled.file; import javazoom.spi.mpeg.sampled.file.tag.MP3Tag; import javazoom.spi.mpeg.sampled.file.tag.TagParseEvent; import javazoom.spi.mpeg.sampled.file.tag.TagParseListener; /** * This class (singleton) allow to be notified on shoutcast meta data * while playing the stream (such as song title). */ public class IcyListener implements TagParseListener { private static IcyListener instance = null; private MP3Tag lastTag = null; private String streamTitle = null; private String streamUrl = null; private IcyListener() { super(); } public static synchronized IcyListener getInstance() { if (instance == null) { instance = new IcyListener(); } return instance; } /* (non-Javadoc) * @see javazoom.spi.mpeg.sampled.file.tag.TagParseListener#tagParsed(javazoom.spi.mpeg.sampled.file.tag.TagParseEvent) */ public void tagParsed(TagParseEvent tpe) { lastTag = tpe.getTag(); String name = lastTag.getName(); if ((name != null) && (name.equalsIgnoreCase("streamtitle"))) { streamTitle = (String) lastTag.getValue(); } else if ((name != null) && (name.equalsIgnoreCase("streamurl"))) { streamUrl = (String) lastTag.getValue(); } } /** * @return */ public MP3Tag getLastTag() { return lastTag; } /** * @param tag */ public void setLastTag(MP3Tag tag) { lastTag = tag; } /** * @return */ public String getStreamTitle() { return streamTitle; } /** * @return */ public String getStreamUrl() { return streamUrl; } /** * @param string */ public void setStreamTitle(String string) { streamTitle = string; } /** * @param string */ public void setStreamUrl(String string) { streamUrl = string; } /** * Reset all properties. */ public void reset() { lastTag = null; streamTitle = null; streamUrl = null; } }