/* * @(#)DrawingSurfaceJAWT.java 1.2 02/08/21 * * Copyright (c) 1996-2002 Sun Microsystems, Inc. All rights reserved. */ package com.sun.media; import java.awt.*; import com.sun.media.JMFSecurityManager; public class DrawingSurfaceJAWT { public static final int valid = 0; public static final int pawt = 1; public static final int pds = 2; public static final int pwinid = 3; public static final int pdisp = 4; private static boolean avail = true; static { try { Toolkit.getDefaultToolkit(); JMFSecurityManager.loadLibrary("jmfjawt"); // System.out.println("in dsJAWT after loading jmfjawt"); avail = true; } catch(Throwable t) { t.printStackTrace(); avail = false; } } public static native int getWindowHandle(Component c); public static native boolean lockAWT(int dsObj); public static native void unlockAWT(int dsObj); public static native void freeResource(int awtObj, int dsObj); public native int getAWT(); public native int getDrawingSurface(Component c, int awtObj); public native int getDrawingSurfaceWinID(int dsObj); public native int getDrawingSurfaceDisplay(int dsObj); int[] winfo = null; public DrawingSurfaceJAWT() { if ( !avail ) { throw new RuntimeException("can't load jmfjawt native module"); } // System.out.println("in DrawingSurfaceJAWT constructor"); winfo = new int[5]; for ( int i = 0; i < 5; i++) winfo[i] = 0; } public int[] getWindowInfo(Component cc) { int value = 0; value = getAWT(); if ( value == 0 ) { winfo[valid] = 0; return winfo; } winfo[pawt] = value; value = getDrawingSurface(cc, winfo[pawt]); if ( value == 0 ) { winfo[valid] = 0; return winfo; } winfo[pds] = value; value = getDrawingSurfaceWinID(winfo[pds]); if ( value == 0 ) { winfo[valid] = 0; return winfo; } winfo[pwinid] = value; value = getDrawingSurfaceDisplay(winfo[pds]); if ( value == 0 ) { winfo[valid] = 0; return winfo; } winfo[pdisp] = value; winfo[valid] = 1; return winfo; } }