OSDN Git Service

[バックアップ]nyartoolkit
[nyartoolkit-and/nyartoolkit-and.git] / sample / jmf / jp / nyatla / nyartoolkit / jmf / utils / MonitorStream.java
diff --git a/sample/jmf/jp/nyatla/nyartoolkit/jmf/utils/MonitorStream.java b/sample/jmf/jp/nyatla/nyartoolkit/jmf/utils/MonitorStream.java
deleted file mode 100644 (file)
index 28d6b86..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- * Copyright (c) 1996-2001 Sun Microsystems, Inc. All Rights Reserved.
- *
- * Sun grants you ("Licensee") a non-exclusive, royalty free, license to use,
- * modify and redistribute this software in source and binary code form,
- * provided that i) this copyright notice and license appear on all copies of
- * the software; and ii) Licensee does not utilize the software in a manner
- * which is disparaging to Sun.
- *
- * This software is provided "AS IS," without a warranty of any kind. ALL
- * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY
- * IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
- * NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE
- * LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING
- * OR DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS
- * LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT,
- * INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER
- * CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF
- * OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGES.
- *
- * This software is not designed or intended for use in on-line control of
- * aircraft, air traffic, aircraft navigation or aircraft communications; or in
- * the design, construction, operation or maintenance of any nuclear
- * facility. Licensee represents and warrants that it will not use or
- * redistribute the Software for such purposes.
- */
-package jp.nyatla.nyartoolkit.jmf.utils;
-
-
-
-import javax.media.*;
-import javax.media.protocol.*;
-
-import javax.media.util.BufferToImage;
-import java.io.IOException;
-import java.awt.*;
-
-public class MonitorStream implements PushBufferStream, BufferTransferHandler {
-
-    JmfCaptureListener img_listener;
-    PushBufferStream actual = null;
-    boolean dataAvailable = false;
-    boolean terminate = false;
-    boolean enabled = false;
-    Object bufferLock = new Object();
-    Buffer cbuffer = new Buffer();
-    BufferTransferHandler transferHandler = null;
-    Component component = null;
-    MonitorCDS cds;
-    BufferToImage bti = null;
-    
-    MonitorStream(PushBufferStream actual, MonitorCDS cds) {
-       this.actual = actual;
-       actual.setTransferHandler(this);
-       this.cds = cds;
-    }
-
-    public javax.media.Format getFormat()
-    {
-       return actual.getFormat();
-    }
-    /**
-     * 非同期READ
-     */
-    public void read(Buffer buffer) throws IOException
-    {
-       // Wait for data to be available
-       // Doesn't get used much because the transferData
-       // call is made when data IS available. And most
-       // Processors/Players read the data in the same
-       // thread that called transferData, although that's
-       // not a safe assumption to make
-       if (!dataAvailable) {
-           synchronized (bufferLock) {
-               while (!dataAvailable && !terminate) {
-                   try {
-                       bufferLock.wait(100);
-                   } catch (InterruptedException ie) {
-                   }
-               }
-           }
-       }
-
-       if (dataAvailable) {
-           synchronized (bufferLock) {
-               // Copy the buffer attributes, but swap the data
-               // attributes so that no extra copy is made.
-               buffer.copy(cbuffer, true);
-               //dataAvailable = false;
-           }
-       }
-//     return;
-    }
-    public void setCaptureListener(JmfCaptureListener i_listener)
-    {
-       img_listener=i_listener;
-    }
-
-    public void transferData(PushBufferStream pbs)
-    {
-       // Get the data from the original source stream
-       synchronized (bufferLock) {
-           try {
-               pbs.read(cbuffer);
-           } catch (IOException ioe) {
-               return;
-           }
-           dataAvailable = true;
-           bufferLock.notifyAll();
-       }
-       if(img_listener!=null){
-           img_listener.onUpdateBuffer(cbuffer);
-       }
-       
-/*
-       // Display data if monitor is active
-       if (isEnabled()) {
-           if (bti == null) {
-               VideoFormat vf = (VideoFormat) cbuffer.getFormat();
-               bti = new BufferToImage(vf);
-           }
-           if (bti != null && component != null) {
-               Image im = bti.createImage(cbuffer);
-               Graphics g = component.getGraphics();
-               Dimension size = component.getSize();
-               if (g != null)
-                   g.drawImage(im, 0, 0, component);
-           }
-       }
-*/
-       // Maybe synchronize this with setTransferHandler() ?
-       if (transferHandler != null && cds.delStarted)
-           transferHandler.transferData(this);
-    }
-
-    public void setTransferHandler(BufferTransferHandler transferHandler) {
-       this.transferHandler = transferHandler;
-    }
-
-    public boolean setEnabled(boolean value) {
-       enabled = value;
-       if (value == false) {
-           if (!cds.delStarted) {
-               try {
-                   cds.stopDelegate();
-               } catch (IOException ioe) {
-               }
-           }
-       } else {
-           // Start the capture datasource if the monitor is enabled
-           try {
-               cds.startDelegate();
-           }catch (IOException ioe) {
-           }
-       }
-       return enabled;
-    }
-
-    public boolean isEnabled()
-    {
-       return enabled;
-    }
-
-
-
-    public float setPreviewFrameRate(float rate)
-    {
-       System.err.println("TODO");
-       return rate;
-    }
-       
-    public ContentDescriptor getContentDescriptor()
-    {
-       return actual.getContentDescriptor();
-    }
-
-    public long getContentLength()
-    {
-       return actual.getContentLength();
-    }
-
-    public boolean endOfStream() {
-       return actual.endOfStream();
-    }
-
-    public Object [] getControls() {
-       return new Object[0];
-    }
-
-    public Object getControl(String str) {
-       return null;
-    }
-
-
-}