psychWithJava
Class BitsPPFake

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Window
              extended by java.awt.Frame
                  extended by javax.swing.JFrame
                      extended by psychWithJava.FullScreen
                          extended by psychWithJava.BitsPPFake
All Implemented Interfaces:
java.awt.event.KeyListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants

public class BitsPPFake
extends FullScreen

Provides Fake Bits++ methods for development. The method signitures are identical to BitsPP class. Therefore a program using BitsPP class can easily be converted to one which uses BitsPPFake class and run on a system without the Bits++ device for developing the actual experimental code while the programmer is away from his or her labaratory.

Inherited from FullScreen class, therefore it has all FullScreen methods available. Additional methods specific to Bits++ device is detailed below.

See Chapter A: Bits++ in The Guide to Psychophysics Programming with Java for more information.

Author:
boyaci
See Also:
BitsPP, FullScreen, Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class psychWithJava.FullScreen
FullScreen.KeyPressed, FullScreen.KeyReleased, FullScreen.KeyTyped
 
Nested classes/interfaces inherited from class javax.swing.JFrame
javax.swing.JFrame.AccessibleJFrame
 
Nested classes/interfaces inherited from class java.awt.Frame
java.awt.Frame.AccessibleAWTFrame
 
Nested classes/interfaces inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
 
Fields inherited from class javax.swing.JFrame
accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Frame
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
BitsPPFake()
          Constructs a BitsPP object on the default screen.
BitsPPFake(int screen_id)
          Constructs a BitsPP object on the screen designated with displayID.
 
Method Summary
 void displayImage(int x, int y, java.awt.image.BufferedImage bi)
          Displays a BufferedImage at the specified position.
 void initClut()
          Initializes the clut row used for software look up operation as opposed to the actual one used for communicating with Bits++ hardware device.
 void setClut(int[] clut)
          Sets a new look up table for each color channel for software look up operation.
 void setClut(int[] redClut, int[] greenClut, int[] blueClut)
          Sets a new look up table for each color channel for software look up operation.
 
Methods inherited from class psychWithJava.FullScreen
blankScreen, closeScreen, displayImage, displayText, displayText, flushKeyPressed, flushKeyReleased, flushKeyTyped, getBackground, getDisplayMode, getDisplayModes, getKeyPressed, getKeyPressed, getKeyReleased, getKeyReleased, getKeyTyped, getKeyTyped, getNBuffers, hideCursor, isDisplayChangeSupported, isDisplayModeAvailable, isFullScreenSupported, keyPressed, keyReleased, keyTyped, reportDisplayMode, reportDisplayModes, setBackground, setDisplayMode, setNBuffers, showCursor, updateScreen
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
 
Methods inherited from class java.awt.Frame
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setResizable, setState, setTitle, setUndecorated
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOwnedWindows, getOwner, getOwnerlessWindows, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setVisible, show, toBack, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Constructor Detail

BitsPPFake

public BitsPPFake()
Constructs a BitsPP object on the default screen. It initializes a fake clut line used for software lookup operation, as opposed to the real one used to communicate with the Bits++ device. By default it uses a single video buffer and the current display mode. Once it is constructed, FullScreen captures the entire screen immediately. At the end client's program must terminate this mode and go back to system's default display. To do this use the method closeScreen().

See Also:
initClut(), FullScreen.setDisplayMode(DisplayMode), FullScreen.setNBuffers(int), FullScreen.closeScreen()

BitsPPFake

public BitsPPFake(int screen_id)
Constructs a BitsPP object on the screen designated with displayID. It initializes a fake clut line used for software lookup operation, as opposed to the real one used to communicate with the Bits++ device. By default it uses a single video buffer and the current display mode of the client's OS. Once it is constructed, BitsPP captures the entire screen immediately. At the end client's program must terminate this mode and go back to system's default display. To do this use the method closeScreen().

Parameters:
screen_id - a numerical id indicating the screen device
See Also:
initClut(), FullScreen.setDisplayMode(DisplayMode), FullScreen.setNBuffers(int), FullScreen.closeScreen()
Method Detail

initClut

public void initClut()
Initializes the clut row used for software look up operation as opposed to the actual one used for communicating with Bits++ hardware device.


setClut

public void setClut(int[] redClut,
                    int[] greenClut,
                    int[] blueClut)
             throws java.lang.ArrayIndexOutOfBoundsException
Sets a new look up table for each color channel for software look up operation. It uses the most significant 8 bit of each element in the tables. Therefore user should pass the same 14 bit values as in actual BitsPP class.

Parameters:
redClut - red look up table
greenClut - green look up table
blueClut - blue look up table
Throws:
java.lang.ArrayIndexOutOfBoundsException - if the number of elements is not equal to 256 for any color table

setClut

public void setClut(int[] clut)
             throws java.lang.ArrayIndexOutOfBoundsException
Sets a new look up table for each color channel for software look up operation. It uses the most significant 8 bit of each element in the tables. Therefore user should pass the same 14 bit values as in actual BitsPP class.

Parameters:
clut - look up table for all color channels.
Throws:
java.lang.ArrayIndexOutOfBoundsException - if the number of elements of clut is not equal to 256

displayImage

public void displayImage(int x,
                         int y,
                         java.awt.image.BufferedImage bi)
Displays a BufferedImage at the specified position. Note that, in case there is a back video buffer this method draws the image on the back buffer. In that case user has to invoke the updateScreen() method to actually display the image on the screen.

This method also applies the look up operation specified by the color look up tables. Currently accepts only TYPE_BYTE_GRAY and TYPE_3BYTE_BGR types of BufferedImage. It is highly recommended to use with only gray scale images because a software look up is a very expensive operation.

Overrides:
displayImage in class FullScreen
Parameters:
x - horizontal offset of the upper left corner of the image from the upper left corner of the screen
y - vertical offset of the upper left corner of the image from the upper left corner of the screen
bi - BufferedImage to display
See Also:
FullScreen.displayImage(BufferedImage), FullScreen.updateScreen(), setClut(int[], int[], int[]), setClut(int[])