Package com.hdcookbook.grin.test.bigjdk

This package contains support for testing GRIN on "big JDK," more formally known as Java SE.


Class Summary
BDRegisterEmulatorScreen This is a UI for editing the fake registers maintained by BDRegisterEmulator
GenericDirector This is a subclass of the GRIN director class that fakes out GRIN to accept any extensions of the GRIN syntax.
GenericMain This is a generic test program for exercising a show file.
GrinTestRyan This is a small program to exercise the GRIN framework.
GrinView This is like GenericMain, and also includes a GUI to browse the Show file and control show execution.
GrinViewScreen This is the UI frame that holds the control screen of GrinView
GuiShowBuilder This is a ShowBuilder that tracks line number for GrinView
MainRyanDirector This is part of the "Ryan's life" test show.
ScalingDirectDrawEngine A double-buffered animation engine that uses direct draw, and applies a scaling divisor.
ShowNode This is a Swing TreeNode that represents a node in the show graph.

Package com.hdcookbook.grin.test.bigjdk Description

This package contains support for testing GRIN on "big JDK," more formally known as Java SE. This can be a useful thing to do while debugging scripts, because with big JDK, you typically have access to a much richer suite of debugging tools, and more convenient access to an IDE like NetBeans.

The downside of developing on big JDK is that the GEM and Blu-ray APIs aren't available. For GRIN, we put some minimal stub classes in org.dvb in the workspace, but these are by no means a complete implementation of those APIs. Rather, they're just enough to bootstrap a functional method for testing GRIN using desktop Java.

In this package, there are two ways of launching the "Ryan's Life" demo:

    java -cp (dir) com.hdcookbook.grin.test.bigjdk.GrinTestRyan

    java -cp (dir) com.hdcookbook.grin.test.bigjdk.GuiGenericMain \
        -assets ../test/assets/ ryan_show.txt 6

The first is a more complete test of Ryan's Life, with a program that implements the ryan-specific command extensions in the script. It correctly runs Ryan at the normal PAL/SECAM SD resolution.

The second test is a cool little program that displays the parse tree of the Ryan script in a Swing hierarchy widget. You can double-click on a segment to activate that segment, and you can single-step through animations frame-by-frame. This can be a useful debugging tool if you have a one-frame "flash" artifact in your script, and you don't understand why. This "generic" version assumes a 24p HD display (1920x1280), and it does graphics plane compositing in software, so it's slow. I find I have to back the frame rate down to about 6 fps, even on a fast PC. That's what the last command-line argument is for.