AbstractSaver.java :  » Media » jpsxdec » jpsxdec » media » savers » Java Open Source

Java Open Source » Media » jpsxdec 
jpsxdec » jpsxdec » media » savers » AbstractSaver.java
/*
 * jPSXdec: Playstation 1 Media Decoder/Converter in Java
 * Copyright (C) 2007-2008  Michael Sabin
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU 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 General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor,   
 * Boston, MA  02110-1301, USA.
 *
 */

/*
 * AbstractSaver.java
 */

package jpsxdec.media.savers;

import jpsxdec.media.StopPlayingException;
import java.io.IOException;
import jpsxdec.media.IProgressListener;

/** Attaches to PSXMedia classes to handle the physical saving 
 *  of media as the media item is played. */
public abstract class AbstractSaver {
    
    protected IProgressListener m_oListener;
    
    public void addProgressListener(IProgressListener oListener) {
        m_oListener = oListener;
    }
    
    protected void fireProgressUpdate(String msg, long lngStartPos, long lngEndPos, long lngCurPos) throws StopPlayingException {
        if (m_oListener != null) {
            boolean bln = m_oListener.ProgressUpdate(
                    msg, 
                    (lngCurPos - lngStartPos)
                    / (double)(lngEndPos - lngStartPos));
            if (bln) throw new StopPlayingException();
        }
    }
    
    /** Performs cleanup after the media is done playing (closes files,
     *  detaches listeners, etc.). */
    public abstract void done() throws IOException;
    
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.