psychWithJava
Class BitsPP

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.BitsPP
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 BitsPP
extends FullScreen

Provides Bits++ triggering mechanism and methods to load Bits++ look up tables.

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:
FullScreen, BitsPPFake, 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
BitsPP()
          Constructs a BitsPP object on the default screen.
BitsPP(int screen_id)
          Constructs a BitsPP object on the screen designated with displayID.
 
Method Summary
 void blankScreen()
          Blanks the whole screen using the current background color.
 void closeScreen()
          Closes the full screen exclusive mode screen.
 void displayImage(int x, int y, java.awt.image.BufferedImage bi)
          Displays a BufferedImage at the specified position.
 void displayText(int x, int y, java.lang.String text)
          Displays text at the specified position.
 void initClut()
          Initializes the clut row used for communicating with Bits++ hardware device.
 void setClut(int[] clut)
          Sets a new look up table for each color channel.
 void setClut(int[] redClut, int[] greenClut, int[] blueClut)
          Sets a new look up table for each color channel.
 
Methods inherited from class psychWithJava.FullScreen
displayImage, 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

BitsPP

public BitsPP()
Constructs a BitsPP object on the default screen. It initializes the clut line 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), closeScreen()

BitsPP

public BitsPP(int screen_id)
Constructs a BitsPP object on the screen designated with displayID. It initializes the clut line 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), closeScreen()
Method Detail

initClut

public void initClut()
Initializes the clut row 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. Each element in the tables is a 14 bit relation between pixel values and relative luminance displayed on the screen.

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
See Also:
setClut(int[])

setClut

public void setClut(int[] clut)
             throws java.lang.ArrayIndexOutOfBoundsException
Sets a new look up table for each color channel. Each element in the table is a 14 bit relation between pixel values and relative luminance displayed on the screen.

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 draws the clut row at the upper left corner of the screen to communicate with Bits++ device. That row determines the look up operation used in that refresh of the screen.

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[])

displayText

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

This method also draws the clut row at the upper left corner of the screen to communicate with Bits++ device. That row determines the look up operation used in that refresh of the screen.

Overrides:
displayText in class FullScreen
Parameters:
x - horizontal offset of the upper left corner of the text from the upper left corner of the screen
y - vertical offset of the upper left corner of the text from the upper left corner of the screen
text - a text message to display
See Also:
FullScreen.displayText(String), FullScreen.updateScreen(), setClut(int[], int[], int[]), setClut(int[])

blankScreen

public void blankScreen()
Blanks the whole screen using the current background color. Note that, in case there is a back video buffer this method blanks the back buffer. In that case user has to invoke the updateScreen() method to actually blank the screen.

This method also draws the clut row at the upper left corner of the screen to communicate with Bits++ device. That row determines the look up operation used in that refresh of the screen.

Overrides:
blankScreen in class FullScreen
See Also:
FullScreen.updateScreen(), setClut(int[], int[], int[]), setClut(int[])

closeScreen

public void closeScreen()
Closes the full screen exclusive mode screen. This method performs also the following additional steps: it restores a linear look up table on the Bits++ device (so that the screen has a good looking condition after the program is terminated), it switches the resolution back to system setting, releases all the screen resources to the operating system. User must invoke this method to re-gain access to normal (good looking) desktop.

Overrides:
closeScreen in class FullScreen
See Also:
BitsPP(), BitsPP(int)